Fix CPU load value
The new approach keep the last event before the time window limit to correctly measure long running activity
This commit is contained in:
parent
28afdc35ef
commit
fcf626d03b
@ -41,9 +41,9 @@
|
|||||||
}
|
}
|
||||||
function expireEvents(list, curTime, limitTime)
|
function expireEvents(list, curTime, limitTime)
|
||||||
{
|
{
|
||||||
while(list.length)
|
while(list.length > 1)
|
||||||
{
|
{
|
||||||
if(list[0].t < limitTime)
|
if(list[1].t < limitTime)
|
||||||
{
|
{
|
||||||
list.shift();
|
list.shift();
|
||||||
}
|
}
|
||||||
@ -73,24 +73,29 @@
|
|||||||
for(var i=0;i<cpuActivityEvents.length;i++)
|
for(var i=0;i<cpuActivityEvents.length;i++)
|
||||||
{
|
{
|
||||||
var e = cpuActivityEvents[i];
|
var e = cpuActivityEvents[i];
|
||||||
|
// NOTE: The first event could be before the limit,
|
||||||
|
// we need at least one event to correctly mark
|
||||||
|
// active time when there is long time under load
|
||||||
|
var eTime = e.t;
|
||||||
|
if(eTime < limitTime)
|
||||||
|
eTime = limitTime;
|
||||||
if(e.state == "ready")
|
if(e.state == "ready")
|
||||||
{
|
{
|
||||||
// Inactive state, add the time frome lastActiveTime
|
// Inactive state, add the time frome lastActiveTime
|
||||||
totalActiveTime += (e.t - lastActiveTime);
|
totalActiveTime += (eTime - lastActiveTime);
|
||||||
lastWasActive = false;
|
lastWasActive = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Active state
|
// Active state
|
||||||
lastActiveTime = e.t;
|
lastActiveTime = eTime;
|
||||||
lastWasActive = true;
|
lastWasActive = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Add the last interval if needed
|
// Add the last interval if needed
|
||||||
if(lastWasActive)
|
if(lastWasActive)
|
||||||
{
|
{
|
||||||
if(e.t - lastActiveTime > 0)debugger;
|
totalActiveTime += (curTime - lastActiveTime);
|
||||||
totalActiveTime += (e.t - lastActiveTime);
|
|
||||||
}
|
}
|
||||||
cpuPercentage.set(Math.ceil((totalActiveTime / 10000) * 100));
|
cpuPercentage.set(Math.ceil((totalActiveTime / 10000) * 100));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user