我想用GNU coreutil top的公式来计算CPU使用率的百分比。 但是,顶部正在使用一些half_total来计算百分比,即将百分比加0.5。top命令的CPU使用率计算
在顶部的source的utils.c,以下行(在3.8β1,它是在行号:459): -
*总分++ =(int)的((* diff文件++ * 1000 + half_total)/ total_change);
这意味着: ((* diffs ++ * 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
但是“10x”部分呢? – Sabya 2009-02-16 11:27:00