加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

win32上的python:如何获得绝对时间/ CPU周期数

发布时间:2020-12-14 04:02:17 所属栏目:Windows 来源:网络整理
导读:我有一个 python脚本调用基于USB的数据采集C#dotnet可执行文件.主python脚本做了很多其他的事情,例如它控制一个步进电机.我们想检查各种操作的相对时间,为此目的,dotnet exe生成一个带有来自C#Stopwatch.GetTimestamp()的时间戳的日志,据我所知,它产生与调用
我有一个 python脚本调用基于USB的数据采集C#dotnet可执行文件.主python脚本做了很多其他的事情,例如它控制一个步进电机.我们想检查各种操作的相对时间,为此目的,dotnet exe生成一个带有来自C#Stopwatch.GetTimestamp()的时间戳的日志,据我所知,它产生与调用win32 API Query PerformanceCounter()相同的数字.

现在我想从python脚本中获得类似的数字. time.clock()返回这样的值,不幸的是它将第一次调用时获得的值减去time.clock().我怎么能绕过这个?从一些现有的python模块调用QueryPerformanceCounter()是否容易,或者我是否必须在C中编写自己的python扩展?

我忘了提到,Tim Golden的python WMI模块做到了这一点:
wmi.WMI().Win32_PerfRawData_PerfOS_System()[0] .Timestamp_PerfTime
,但它太慢了,开销大约48ms.我需要一些< = 1ms的开销. time.clock()似乎足够快,就像c#Stopwatch.GetTimestamp()一样. TIA,
拉迪姆

解决方法

你尝试过使用ctypes吗?

from ctypes import *
val = c_int64()
windll.Kernel32.QueryPerformanceCounter(byref(val))
print val.value

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读