簡體   English   中英

top命令的CPU使用率計算

[英]top command's CPU usage calculation

我正在嘗試使用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

這是對整數值進行舍入的方法,因為除法會丟棄小數部分。

當你加一半除數時,這相當於一個浮點除法,如果小數部分為0.5或更大,則向上舍入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM