顶部命令CPU使用率计算
-
23-08-2019 - |
题
我想使用GNU coreutil顶部的公式以百分比计算CPU占用率。 但顶部使用一些half_total,来计算的百分比,这是添加0.5〜百分比。
在顶部的源的utils.c ,以下行(在3.8β1,它是在行号:459): -
*总分++ =(int)的((* diff文件++ * 1000 + half_total)/ total_change);
此转换为: ((* diff文件++ * 1000)/ total_change)+ 1/2 因此,它总是给一个数字,它是:“率在10倍,再加上0.5”。因此,如果百分比为x,它会返回10X + 0.5。
谁能解释这平均是如何计算的?或至少一些指针在那里我能得到的帮助?
PS:
为什么我们不能只使用(*diffs++/total_change) * 100
来获得所需的百分比是多少?
顶的源代码位于: - http://downloads.sourceforge.net/unixtop /top-3.8beta1.tar.gz?modtime=1210117842&big_mirror=0
解决方案
这是做的舍入内的整数值的方式,这是因为除法丢弃的小数部分。
在添加一半的除数这相当于一个浮点除法和舍入如果小数部分为0.5或更大。
不隶属于 StackOverflow