我想知道系统的HZ,即Python代码中有多少mili秒。
答案 0 :(得分:23)
有USER_HZ
>>> import os
>>> os.sysconf_names['SC_CLK_TCK']
2
>>> os.sysconf(2)
100
内核用于在/proc
中报告时间。
来自time(7)
手册页:
软件时钟,HZ和Jiffies
设置超时的各种系统调用的准确性(例如, select(2),sigtimedwait(2))并测量CPU时间(例如,getrusage(2)) 受到软件时钟分辨率的限制,保持时钟 由内核测量jiffies的时间。 jiffy的大小是 由内核常数HZ的值确定。
HZ的值因内核版本和硬件平台而异。 在i386上,情况如下:在内核上包括 2.4.x,HZ为100,jiffy值为0.01秒;从...开始 2.6.0,HZ升至1000,瞬间为0.001秒。以来 内核2.6.13,HZ值是一个内核配置参数,可以 是100,250(默认值)或1000,产生的jiffies值为respec- 通常,0.01,0.004或0.001秒。由于内核2.6.20,进一步 频率可用:300,一个均匀分配的数字 视频帧率(PAL,25 HZ; NTSC,30 HZ)。
时间(2)系统调用是一种特殊情况。它用时间报告时间 由内核常量USER_HZ定义的粒度。用户空间应用 tions可以使用确定此常量的值 的sysconf(_SC_CLK_TCK)。
如果你绝对必须知道SYSTEM_HZ:
>>> from ctypes import *
>>> rt = CDLL('librt.so')
>>> CLOCK_REALTIME = 0
>>> class timespec(Structure):
... _fields_ = [("tv_sec", c_long), ("tv_nsec", c_long)]
...
>>> res = timespec()
>>> rt.clock_getres(CLOCK_REALTIME, byref(res))
0
>>> res.tv_sec, res.tv_nsec
(0, 4000250)
>>> SYSTEM_HZ = round(1/(res.tv_sec + (res.tv_nsec/10.0**9)))
我的笔记本电脑上有250个(听起来很合适),虚拟机中有100万个......
答案 1 :(得分:5)
sysconf(SC_CLK_TCK)没有给出Linux中定时器中断的频率。它给出了jifies的频率,这对于用户空间是可见的,比如/ proc
中各个目录中的计数器实际频率是故意隐藏在用户空间的。实际上,有些系统使用动态滴答或“无滴答”系统,因此根本没有任何系统。
所有用户空间接口都使用SC_CLK_TCK中的值,据我所知,在Linux下它总是100。
答案 2 :(得分:0)
我写了这个:
https://github.com/peppelinux/xt_recent_parser
输出是这样的:
python3 xt_recent_parser.py
XT_RECENT python parser
<giuseppe.demarco@unical.it>
114.241.108.160, last seen: 2017-03-25 18:21:42 after 13 Connections
46.165.210.17, last seen: 2017-03-25 13:07:54 after 10 Connections
61.53.219.162, last seen: 2017-03-25 17:39:17 after 20 Connections
179.37.141.232, last seen: 2017-03-25 18:08:23 after 2 Connections
114.42.117.39, last seen: 2017-03-25 13:22:14 after 18 Connections
177.12.84.234, last seen: 2017-03-25 16:22:14 after 17 Connections
我认为如果你需要毫秒转换就很容易编辑,你只需要扩展JiffyTimeConverter python类