Commit f1e14d87 authored by Christian Hergert's avatar Christian Hergert

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.
parent 42b67bc4
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment