[gtk/stringlist-judy: 3/4] performance test: Print out memory sizes too
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/stringlist-judy: 3/4] performance test: Print out memory sizes too
- Date: Sun, 5 Jul 2020 15:38:38 +0000 (UTC)
commit f1f2c3e396d3edca616249925acef53def1d8ffd
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jul 5 11:35:55 2020 -0400
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.
testsuite/gtk/listmodel-performance.c | 70 +++++++++++++++++++++++------------
1 file 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
}
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]