Eri*_*tto 9 c macos cpu cocoa objective-c
任何有助于弄清楚如何做到这一点的帮助都会很棒:每个CPU核心在过去一秒内在C0电源状态下花费了多少时间.
这适用于mac应用程序,因此需要Objective-C,cocoa和c.
OS X没有任何公开CPU的c状态的API.但是,您似乎可以使用intel CPU上的MWAIT/MONITOR指令执行此操作.英特尔提到您可以在参考手册的第14.4节中使用此技术跟踪C状态驻留:
软件应使用CPUID来发现目标处理器是否支持MWAIT扩展的枚举.如果CPUID.05H.ECX [Bit 0] = 1,则目标处理器支持MWAIT扩展及其枚举(参见英特尔®64和IA-32架构软件开发人员手册第2卷第3章"指令集参考,AM") ).
如果CPUID.05H.ECX [位1] = 1,则目标处理器支持将中断用作MWAIT的中断事件,即使禁用了中断也是如此.使用此功能可以按如下方式测量C状态驻留:
当发出MWAIT进入处理器特定的C状态或子C状态时,软件可以写入MWAIT扩展寄存器(ECX)中的第0位. 当处理器退出非活动C状态或子C状态时,软件可以在可能执行中断服务例程(ISR)之前读取时间戳.
您可以在同一手册中找到有关MWAIT指令的更多信息.祝好运!
归档时间: |
|
查看次数: |
923 次 |
最近记录: |