我只是想确认是否使用NSLog语句在控制台上打印日志会使应用程序变慢? 另外,如果我将它们记录在文件中而不是登录控制台,它将以相同的方式运行。
是的,在代码的内部循环中向控制台打印许多日志行,尤其是通过USB调试器连接时,会在一定程度上降低执行速度。 (从应用程序的角度来看,USB I / O可能被阻止)。
至于是否更快地记录到文件,iOS会使用NSLog
语句并将其也过滤到设备的整体控制台日志中,因此它们已经进入磁盘,但可能会更智能地进行缓冲,因为这在生产系统上发生。
是否应该记录到文件,这取决于您的目标。 如果您要在设备上进行计时,则只需在计时时取出日志记录即可。 如果在计时时需要日志数据,请考虑在操作期间将一堆日志字符串缓冲在内存中,然后再将它们刷新到某个位置。