gpt4 book ai didi

python - 内核统计的最大值-python

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:09 26 4
gpt4 key购买 nike

问题:内核统计计数器的最大值是多少?我如何在 python 代码中处理它?<​​/p>

上下文:我根据内核统计数据计算一些统计数据(例如/proc/partitions - 它将是自定义的 python iostat 版本)。但我有溢出值的问题 - 负值。原始 iostat 代码 https://github.com/sysstat/sysstat/blob/master/iostat.c评论:

* Counters overflows are possible, but don't need to be handled in
* a special way: The difference is still properly calculated if the
* result is of the same type as the two values.

我的语言是 python,在我的案例中我需要关心溢出问题。可能它还取决于体系结构(32/64)。我试过 2^64-1(64 位系统),但没有成功。

最佳答案

以下函数适用于 32 位计数器:

def calc_32bit_diff(old, new):
return (new - old + 0x100000000) % 0x100000000

print calc_32bit_diff(1, 42)
print calc_32bit_diff(2147483647, -2147483648)
print calc_32bit_diff(-2147483648, 2147483647)

这显然行不通,因为计数器在两次连续读取之间回绕不止一次(但其他方法也行不通,因为信息已经不可恢复地丢失了)。

编写一个 64 位版本作为练习留给读者。 :)

关于python - 内核统计的最大值-python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28014608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com