2013-06-25 86 views
1

有沒有什麼辦法以編程方式啓動/停止儀器分析?我需要以可靠的方式簡單描述我的OS X代碼的特定部分,但我似乎無法找到任何可能告訴我如何做到這一點的文書。對於CHUD/Shark,有一個編程API和一個命令行工具來支持這一點,但我沒有看到任何地方的儀器等價物? FWIW我從2009年左右發現了一些舊的論壇帖子,對這個領域缺乏儀器功能感到遺憾,但沒有更新。如何以編程方式啓動/停止Instruments(Time Profiler)?

回答

4

是的。尋找DTPerformanceSession。它是introduced with Instruments 4.0。這是enhanced in Instruments 4.1

這些文件提供此示例代碼: - 太多了C API -

CFStringRef process = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("%d"), getpid()); 
CFErrorRef error = NULL; 
DTPerformanceSessionRef session = DTPerformanceSessionCreate(NULL, process, NULL, &error); 
DTPerformanceSessionAddInstrument(session, (CFStringRef)@DTPerformanceSession_TimeProfiler, NULL, NULL, &error); 
CFMutableArrayRef instrumentIDs = CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks); 
CFArrayAppendValue(instrumentIDs, @DTPerformanceSession_TimeProfiler); 
DTPerformanceSessionStart(session, instrumentIDs, &error); 

// do something in your app 

DTPerformanceSessionStop(session, instrumentIDs, &error); 
DTPerformanceSessionSave(session, (CFStringRef)@"/tmp/myAppProfile", &error); 
DTPerformanceSessionDispose(session, &error); 
+0

完美正是我需要的 - 謝謝! –

相關問題