获取Mac空闲时间C或Python

时间:2010-07-08 22:24:41

标签: python c macos python-idle

如何在C或Python中获得系统空闲时间(没有按键 - 鼠标移动)?

编辑:我的程序在空闲时间暂停计数器> 10秒

4 个答案:

答案 0 :(得分:2)

我目前没有要测试的Mac,所以无法确认这是否有效,但是此主题似乎提供了您正在寻找的解决方案: http://www.dssw.co.uk/sleepcentre/threads/system_idle_time_how_to_retrieve.html

简而言之,使用子进程模块并调用:

ioreg -c IOHIDSystem

然后解析输出,并将值除以10 ^ 9以获得空闲时间(以秒为单位)。

答案 1 :(得分:0)

如果你的意思是在程序过程中花费的时间,在程序完成之后,那么最简单的方法就是运行unix“time”函数:

# echo foo
foo

# time echo foo
foo

real     0m0.000s
user     0m0.000s
sys  0m0.000s

如果你真的需要在程序运行时进行数据收集,那么有一个更技术性的答案 - 我会为你看一下unix书......

更新

clock_t times(struct tms * buf);

查看联机帮助页或“UNIX环境中的高级编程”第8.15节中的详细信息 - 史蒂文斯 - 这类问题的圣经。

更新2:

在另一个进程中运行“sar”(就像stdout-printing版本的top),查找你想要的结果,然后向进程发送信号。

或者,另一个解决方案是关于“ioreg”。

但是,如果你的程序本身就像“内核一样”,其核心有一个很大的动作循环,你可能会发现最好自己跟踪未使用的循环。否则,这是一个非常重要的问题需要解决。

答案 2 :(得分:0)

在python(win)中呢?像python的标准库中的时间模块......?

答案 3 :(得分:0)

您的应用程序是否由GUI驱动?

如果是这样,您可以在GUI启动时启动计时器,然后在顶层进行键盘和鼠标回调。每次触发键盘或鼠标回调时,请重置计时器。否则,当计时器熄灭时,它的处理程序代码应该暂停你的计数器。

如果没有,请忽略这个...... ;-)