我們在某些線程使用coredata ......(太多的併發環境不好 - 我知道,我體驗吧)測量時間一個線程用於等待一個鎖(由coredata卡死)
現在周圍的每一個取/ save coredata包裝一個鎖。
我現在想衡量一個線程花費被阻塞等待將收購該鎖的時間。
我以爲我可以只使用時間分析器甚至線程狀態工具或採樣器。 但: - 時間分析器會忽略等待(可能是因爲它不是一個CPU調用) - 採樣以及(即使他isntin CPU模式) - 線程狀態儀器犯規告訴我正確的調用堆棧要麼:( [但也許(而這總是有可能的),我沒有忽略一個簡單的解決方案]
在這裏我有一個非常簡單的應用程序,也有一個鎖和我也輪不到等待時間......也許你可以幫助我獲得主線程在本例中等待的時間 - 使用一些分析技術,然後我可以將其轉移到coredata案例中:
@implementation DDAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSLock *l = [[NSLock alloc] init];
NSLog(@"made");
[NSThread detachNewThreadSelector:@selector(hogTheLog:) toTarget:self withObject:l];
NSLog(@"wait");
[l lock];
NSLog(@"got");
[l unlock];
NSLog(@"terminate");
[NSApp terminate:nil];
}
- (void)hogTheLog:(NSLock*)l {
[l lock];
sleep(3);
[l unlock];
}
@end
。對我來說是新的。生病後再看看:)謝謝! –
我只是忘記了這一點,因爲直到現在我還沒有這樣的用例 - 這是按照描述的方式工作:)謝謝 –