当前位置:  开发笔记 > 编程语言 > 正文

top命令的CPU使用率计算

如何解决《top命令的CPU使用率计算》经验,为你挑选了1个好方法。

我正在尝试使用GNU coreutil top的公式计算CPU使用率百分比.但是top使用了一些half_total来计算百分比,即百分比增加0.5.

在top的源代码的 utils.c中,以下行(3.8 beta1,行号:459): -

*out ++ =(int)((*diffs ++*1000 + half_total)/ total_change);

这转换为:((*diffs ++*1000)/ total_change)+ 1/2因此,它总是给出一个数字,即:"10倍百分比,再加上0.5".因此,如果百分比为x,则返回10x + 0.5.

谁能解释这个平均值是如何计算的?或至少有一些指针,我可以得到帮助?

PS:为什么我们不能(*diffs++/total_change) * 100用来获得所需的百分比?

Top的源代码位于: - http://downloads.sourceforge.net/unixtop/top-3.8beta1.tar.gz?modtime=1210117842&big_mirror=0



1> starblue..:

这是对整数值进行舍入的方法,因为除法会丢弃小数部分.

当你加一半除数时,这相当于一个浮点除法,如果小数部分为0.5或更大,则向上舍入.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有