如何在Mac OS X中从线程本身获取线程的cpu时间? 对于linux,我所做的是getrusage(RUSAGE_THREAD, &ru)但是这个解决方案不适用于Mac OS X. 我遇到了这个问题,但我不知道如何根据我的目的调整它(我不熟悉Mac OS X的内部。我甚至不确定pthread thread == mach thread)。
我正在学习c / c ++,我想知道是否可以通过它的名称来检测进程,并在它的cpu /内存使用率超过某个值时终止它。 我会对实际代码提供任何帮助,或者只是指向正确的方向。
我需要在OS X上获得目标C / C的总CPU空闲时间吗? 如果可能请提供代码示例。 这是我用来获取这些指标的代码。 结果百分比与Activity Monitor中的百分比不同。 所以我假设CPU时间计算不正确: #include #include #include #include #include – (void)printCPUUsage { processor_cpu_load_info_t cpuLoad; mach_msg_type_number_t processorMsgCount; natural_t processorCount; uint64_t totalSystemTime = 0, totalUserTime = 0, totalIdleTime = 0, totalCPUTime = 0; kern_return_t err = host_processor_info(mach_host_self(), PROCESSOR_CPU_LOAD_INFO, &processorCount, (processor_info_array_t *)&cpuLoad, &processorMsgCount); for (natural_t i = 0; i < processorCount; i++) { […]
我正在使用以下代码来分析我的操作,以优化我的函数中的cpu周期。 static __inline__ unsigned long GetCC(void) { unsigned a, d; asm volatile(“rdtsc” : “=a” (a), “=d” (d)); return ((unsigned long)a) | (((unsigned long)d) << 32); } 我不认为这是最好的,因为即使连续两次通话也给我带来“33”的差异。 有什么建议 ?