我正在寻找一个快速,轻量级的方式从一个Python脚本读取系统正常运行时间。有没有办法从Python调用sysinfo
Linux系统调用?最快的方式获得系统正常运行时间在Python在Linux中
到目前为止,我已经找到了另外两种方法测量的正常运行时间,一个涉及运行的外部进程,另一个涉及/proc
读取文件。
import subprocess
def uptime1():
raw = subprocess.check_output('uptime').decode("utf8").replace(',', '')
days = int(raw.split()[2])
if 'min' in raw:
hours = 0
minutes = int(raw[4])
else:
hours, minutes = map(int,raw.split()[4].split(':'))
totalsecs = ((days * 24 + hours) * 60 + minutes) * 60
return totalsecs
def uptime2():
with open('/proc/uptime', 'r') as f:
uptime_seconds = float(f.readline().split()[0])
return uptime_seconds
当比较速度,第二种方法是围绕快50倍。尽管如此,直接调用系统调用应该是另一个更好的数量级。
>> import timeit
>> print(timeit.timeit('ut.uptime1()', setup="import uptimecalls as ut", number=1000))
1.7286969429987948
>> print(timeit.timeit('ut.uptime2()', setup="import uptimecalls as ut", number=1000))
0.03355383600865025
文件'/ proc中/'不是文件......他们最终都迷上了一些其他的东西让你设置/获取不同的东西。如果你愿意,你可以在python中加载'.so'文件。但不是0.03s/1000倍足够快? – HuStmpHrrr