summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-07-05 11:35:55 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-07-05 11:35:55 -0400
commitf1f2c3e396d3edca616249925acef53def1d8ffd (patch)
tree0b1436da6b504e852cc56dbc230bd6a914eb8278
parent8ffc1fe378319bd31092eb66d20add01e43ecafb (diff)
downloadgtk+-f1f2c3e396d3edca616249925acef53def1d8ffd.tar.gz
performance test: Print out memory sizes too
I didn't write the code to measure GSequence sizes, so those just print 0. I am interested in the dynamic array vs Judy array comparison here.
-rw-r--r--testsuite/gtk/listmodel-performance.c70
1 files changed, 46 insertions, 24 deletions
diff --git a/testsuite/gtk/listmodel-performance.c b/testsuite/gtk/listmodel-performance.c
index 960234d072..69ac601f75 100644
--- a/testsuite/gtk/listmodel-performance.c
+++ b/testsuite/gtk/listmodel-performance.c
@@ -24,6 +24,7 @@ typedef struct {
GListModel * (* create_model) (guint n_items);
void (* append) (GListModel *model, const char *s);
void (* insert) (GListModel *model, guint pos, const char *s);
+ guint64 (* size) (GListModel *model);
} Model;
static GListModel *
@@ -216,7 +217,7 @@ do_random_access (const Model *klass,
guint position;
GtkStringObject *obj;
gint64 start, end;
- guint iterations = 10000000;
+ guint iterations = 10 * 1000 * 1000;
model = klass->create_model (size);
@@ -233,10 +234,11 @@ do_random_access (const Model *klass,
end = g_get_monotonic_time ();
- g_printerr ("\"random access\",\"%s\", %u, %g\n",
+ g_printerr ("\"random access\",\"%s\", %u, %g, %lu\n",
klass->name,
size,
- ((double)(end - start)) / iterations);
+ ((double)(end - start)) / iterations,
+ klass->size (model));
g_object_unref (model);
}
@@ -249,7 +251,7 @@ do_linear_access (const Model *klass,
guint i;
GtkStringObject *obj;
gint64 start, end;
- guint iterations = 1000000;
+ guint iterations = 1000 * 1000;
model = klass->create_model (size);
@@ -265,10 +267,11 @@ do_linear_access (const Model *klass,
end = g_get_monotonic_time ();
- g_printerr ("\"linear access\", \"%s\", %u, %g\n",
+ g_printerr ("\"linear access\", \"%s\", %u, %g, %lu\n",
klass->name,
size,
- ((double)(end - start)) / iterations);
+ ((double)(end - start)) / iterations,
+ klass->size (model));
g_object_unref (model);
}
@@ -281,9 +284,11 @@ do_append (const Model *klass,
guint i, j;
gint64 start, end;
int iterations = 5;
- gint64 total;
+ gint64 total_time;
+ guint64 total_size;
- total = 0;
+ total_time = 0;
+ total_size = 0;
for (i = 0; i < iterations; i++)
{
@@ -299,12 +304,13 @@ do_append (const Model *klass,
}
end = g_get_monotonic_time ();
- total += end - start;
+ total_time += end - start;
+ total_size += klass->size (model);
g_object_unref (model);
}
- g_printerr ("\"append\", \"%s\", %u, %g\n", klass->name, size, ((double)total) / iterations);
+ g_printerr ("\"append\", \"%s\", %u, %g, %g\n", klass->name, size, ((double)total_time) / iterations, ((double)total_size) / iterations);
}
static void
@@ -315,10 +321,12 @@ do_insert (const Model *klass,
guint i, j;
gint64 start, end;
int iterations = 5;
- gint64 total;
+ gint64 total_time;
+ guint64 total_size;
guint position;
- total = 0;
+ total_time = 0;
+ total_size = 0;
for (i = 0; i < iterations; i++)
{
@@ -337,44 +345,58 @@ do_insert (const Model *klass,
}
end = g_get_monotonic_time ();
- total += end - start;
+ total_time += end - start;
+ total_size += klass->size (model);
g_object_unref (model);
}
- g_printerr ("\"insert\", \"%s\", %u, %g\n", klass->name, size, ((double)total) / iterations);
+ g_printerr ("\"insert\", \"%s\", %u, %g, %g\n", klass->name, size, ((double)total_time) / iterations, ((double)total_size) / iterations);
+}
+
+static guint64
+no_size (GListModel *model)
+{
+ return 0;
}
const Model all_models[] = {
{
+ "judy-stringlist",
+ make_sequence_string_list,
+ append_sequence_string_list,
+ insert_sequence_string_list,
+ gtk_string_list2_get_size
+ },
+#if 0
+ {
"liststore",
make_list_store,
append_list_store,
- insert_list_store
+ insert_list_store,
+ no_size
},
{
"arraystore",
make_array_store,
append_array_store,
- insert_array_store
+ insert_array_store,
+ no_size
},
{
"ptrarraystore",
make_array_store2,
append_array_store2,
- insert_array_store2
- },
- {
- "sequence-stringlist",
- make_sequence_string_list,
- append_sequence_string_list,
- insert_sequence_string_list
+ insert_array_store2,
+ no_size
},
+#endif
{
"stringlist",
make_string_list,
append_string_list,
- insert_string_list
+ insert_string_list,
+ gtk_string_list_get_size
}
};