POSAllocationTracker
POSAllocationTracker 是一个简单的运行时跟踪类实例的实用程序。在初始化过程中,追踪器自动监视所有使用直接或间接使用 NSObject
的 init
方法的类。追踪仅在 DEBUG 构建中启用,所以它不会影响发布构建的性能。这个库的想法是在阅读 Facebook 的文章 Reducing FOOMs in the Facebook iOS app 时产生的。库非常简单易用。它只有一个类和一个方法。
[POSAllocationTracker instanceCountForClass:Dummy.class]
以下是该库单元测试中的一个完整示例
@interface Dummy : NSObject
@end
@implementation Dummy
@end
@interface POSAllocationTrackerTests : XCTestCase
@end
@implementation POSAllocationTrackerTests
- (void)testInstanceCounterCorrectness {
XCTAssert([POSAllocationTracker instanceCountForClass:Dummy.class] == 0);
@autoreleasepool {
__unused Dummy *dummy = [Dummy new];
XCTAssert([POSAllocationTracker instanceCountForClass:Dummy.class] == 1);
}
XCTAssert([POSAllocationTracker instanceCountForClass:Dummy.class] == 0);
}
@end