我在应用程序中使用 GTMLogger
函数进行格式化日志记录。该应用程序创建实时 posix 线程(音频数据包处理)。有时我们需要在这些非 Cocoa 线程中执行日志记录。 GTMLogger 创建自动释放对象,我想在函数中的 GTMLogger 调用上放置一个 @autoreleasepool block ,从非 Cocoa 线程记录日志,但是恐怕会影响性能。
我的问题是 - 我能否以某种方式创建自动释放池并将其与当前 posix 线程关联,以便每个线程仅创建该池一次,而不是每次调用日志函数时创建该池?
提前致谢
最佳答案
在 ARC 下,使用 @autoreleasepool
速度相当快。如果您担心那里的性能,我会更担心首先避免不必要的日志记录调用,而不是自动释放池。
如果线程是长期存在的,则通常无法创建与“线程”关联的池。您需要定期排空池,如果您只是将整个线程主函数括在 @autoreleasepool{}
或类似的内容中,则不会发生这种情况。
关于ios - 在 posix 线程上创建自动释放池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690677/