mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
libsysprof-ui: ignore negative and 0 averages
This ensures that we only calculate averages for marks that have a valid duration. We also need a new field for the number of averages we added so that we don't skew the results.
This commit is contained in:
@ -358,7 +358,12 @@ sysprof_capture_view_scan_worker (GTask *task,
|
||||
if (mark->duration > mstat->max)
|
||||
mstat->max = mark->duration;
|
||||
|
||||
mstat->avg += mark->duration;
|
||||
if (mark->duration > 0)
|
||||
{
|
||||
mstat->avg += mark->duration;
|
||||
mstat->avg_count++;
|
||||
}
|
||||
|
||||
mstat->count++;
|
||||
}
|
||||
|
||||
@ -395,8 +400,8 @@ sysprof_capture_view_scan_worker (GTask *task,
|
||||
{
|
||||
SysprofMarkStat *mstat = v;
|
||||
|
||||
if (mstat->count > 0 && mstat->avg > 0)
|
||||
mstat->avg /= mstat->count;
|
||||
if (mstat->avg_count > 0 && mstat->avg > 0)
|
||||
mstat->avg /= mstat->avg_count;
|
||||
|
||||
#if 0
|
||||
g_print ("%s: count=%ld avg=%ld min=%ld max=%ld\n",
|
||||
|
||||
@ -32,6 +32,7 @@ typedef struct
|
||||
gint64 max;
|
||||
gint64 min;
|
||||
gint64 avg;
|
||||
guint64 avg_count;
|
||||
} SysprofMarkStat;
|
||||
|
||||
SysprofMarkStat *_sysprof_mark_stat_new (const gchar *name);
|
||||
|
||||
Reference in New Issue
Block a user