Любая помощь в выяснении того, как это сделать, была бы полезна: Сколько времени каждое ядро ЦП провело в состоянии питания C0 за последнюю секунду.
Это для приложения Mac поэтому необходимы Objective-C, какао и c.
OS X не имеет никаких API-интерфейсов, которые раскрывают c-состояние ЦП. Однако похоже, что вы можете сделать это, используя инструкции MWAIT/MONITOR на процессорах Intel. Intel упоминает, что вы можете отслеживать резидентность C-состояния с помощью этого метода в разделе 14.4 справочного руководства:
Программное обеспечение должно использовать CPUID, чтобы определить, поддерживает ли целевой процессор перечисление расширений MWAIT. Если CPUID.05H.ECX[Bit 0] = 1, целевой процессор поддерживает расширения MWAIT и их перечисление (см. главу 3 «Справочник по набору инструкций, AM» Руководства разработчика программного обеспечения для архитектур Intel® 64 и IA-32, том 2A). ).
Если CPUID.05H.ECX[Bit 1] = 1, целевой процессор поддерживает использование прерываний в качестве событий прерывания для MWAIT, даже если прерывания отключены. Используйте эту функцию для измерения резидентности состояния C следующим образом:
Программное обеспечение может записывать бит 0 в регистр расширений MWAIT (ECX) при выдаче MWAIT для входа в C-состояние процессора или суб-состояние C. Когда процессор выходит из неактивного C-состояния или под-C-состояния, программное обеспечение может считывать метку времени до потенциального выполнения процедуры обслуживания прерывания (ISR).
Вы можете найти больше информации об инструкции MWAIT в том же руководстве. Удачи!