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)
|
if (mark->duration > mstat->max)
|
||||||
mstat->max = mark->duration;
|
mstat->max = mark->duration;
|
||||||
|
|
||||||
mstat->avg += mark->duration;
|
if (mark->duration > 0)
|
||||||
|
{
|
||||||
|
mstat->avg += mark->duration;
|
||||||
|
mstat->avg_count++;
|
||||||
|
}
|
||||||
|
|
||||||
mstat->count++;
|
mstat->count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,8 +400,8 @@ sysprof_capture_view_scan_worker (GTask *task,
|
|||||||
{
|
{
|
||||||
SysprofMarkStat *mstat = v;
|
SysprofMarkStat *mstat = v;
|
||||||
|
|
||||||
if (mstat->count > 0 && mstat->avg > 0)
|
if (mstat->avg_count > 0 && mstat->avg > 0)
|
||||||
mstat->avg /= mstat->count;
|
mstat->avg /= mstat->avg_count;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
g_print ("%s: count=%ld avg=%ld min=%ld max=%ld\n",
|
g_print ("%s: count=%ld avg=%ld min=%ld max=%ld\n",
|
||||||
|
|||||||
@ -32,6 +32,7 @@ typedef struct
|
|||||||
gint64 max;
|
gint64 max;
|
||||||
gint64 min;
|
gint64 min;
|
||||||
gint64 avg;
|
gint64 avg;
|
||||||
|
guint64 avg_count;
|
||||||
} SysprofMarkStat;
|
} SysprofMarkStat;
|
||||||
|
|
||||||
SysprofMarkStat *_sysprof_mark_stat_new (const gchar *name);
|
SysprofMarkStat *_sysprof_mark_stat_new (const gchar *name);
|
||||||
|
|||||||
Reference in New Issue
Block a user