236
bench_index_setup (Benchmark *bench)
240
DeeModelReader reader;
241
guint limit = 25000, i;
243
model = dee_sequence_model_new ();
244
dee_model_reader_new_for_string_column (0, &reader);
245
dee_model_set_schema (model, "s", "s", "s", "u", "b", NULL);
246
index = DEE_INDEX (dee_tree_index_new (model, dee_analyzer_new (), &reader));
248
for (i = 0; i < limit; i++)
250
gchar *random_string = g_strdup_printf ("%"G_GINT32_FORMAT,
252
dee_model_prepend (model, random_string, "Hello world", "!", 42, TRUE);
253
g_free (random_string);
256
bench->state = index;
233
260
bench_model_append_run (Benchmark *bench)
340
bench_model_read_row_run (Benchmark *bench)
343
DeeModelIter *iter, *end;
347
g_assert (DEE_IS_MODEL (bench->state));
349
model = DEE_MODEL (bench->state);
350
n_cols = dee_model_get_n_columns (model);
351
row_buf = g_new0 (GVariant*, n_cols + 1);
353
for (iter = dee_model_get_first_iter (model),
354
end = dee_model_get_last_iter (model);
355
iter != end; iter = dee_model_next (model, iter))
357
dee_model_get_row (model, iter, row_buf);
358
for (i = 0; i < n_cols; i++) g_variant_unref (row_buf[i]);
365
bench_model_clear_run (Benchmark *bench)
369
g_assert (DEE_IS_MODEL (bench->state));
371
model = DEE_MODEL (bench->state);
372
dee_model_clear (model);
374
g_assert (dee_model_get_n_rows (model) == 0);
376
/* Force a re-run of the setup func */
377
bench->benchmark_teardown (bench);
381
bench_model_walk_next_run (Benchmark *bench)
384
DeeModelIter *iter, *end;
386
g_assert (DEE_IS_MODEL (bench->state));
388
model = DEE_MODEL (bench->state);
391
for (iter = dee_model_get_first_iter (model),
392
end = dee_model_get_last_iter (model);
393
iter != end; iter = dee_model_next (model, iter))
399
bench_model_walk_pos_run (Benchmark *bench)
404
g_assert (DEE_IS_MODEL (bench->state));
406
model = DEE_MODEL (bench->state);
408
n_rows = dee_model_get_n_rows (model);
409
for (i = 0; i < n_rows; i++)
411
dee_model_get_iter_at_row (model, i);
416
bench_index_prefix_search (Benchmark *bench)
422
"-9", "-8", "-7", "-6", "-5", "-4", "-3", "-2", "-1",
423
"1", "2", "3", "4", "5", "6", "7", "8", "9",
426
g_assert (DEE_IS_INDEX (bench->state));
428
index = DEE_INDEX (bench->state);
430
for (i = 0; i < G_N_ELEMENTS (prefixes); i++)
432
DeeResultSet *rs = dee_index_lookup (index, prefixes[i],
433
DEE_TERM_MATCH_PREFIX);
435
g_assert_cmpuint (dee_result_set_get_n_rows (rs), >, 0);
437
g_object_unref (G_OBJECT (rs));
313
442
bench_gobject_teardown (Benchmark *bench)
317
obj = G_OBJECT (bench->state);
318
g_object_unref (obj);
448
obj = G_OBJECT (bench->state);
449
g_object_unref (obj);
321
454
Benchmark seqmodel_append = { "SequenceModel.append",
343
476
bench_seqmodel_read_string_setup,
344
477
bench_model_read_string_run,
345
478
bench_gobject_teardown,
482
Benchmark seqmodel_read_row = { "SequenceModel.read_row",
483
bench_seqmodel_read_string_setup,
484
bench_model_read_row_run,
485
bench_gobject_teardown,
489
Benchmark seqmodel_clear = { "SequenceModel.clear",
490
bench_seqmodel_read_string_setup,
491
bench_model_clear_run,
492
bench_gobject_teardown,
496
Benchmark seqmodel_walk_next = { "SequenceModel.walk_next",
497
bench_seqmodel_read_string_setup,
498
bench_model_walk_next_run,
499
bench_gobject_teardown,
503
Benchmark seqmodel_walk_pos = { "SequenceModel.walk_pos",
504
bench_seqmodel_read_string_setup,
505
bench_model_walk_pos_run,
506
bench_gobject_teardown,
349
510
Benchmark filtermodel_collate = { "FilterModel.collate",
350
511
bench_filter_model_collator_setup,
351
512
bench_model_prepend_run,
388
556
add_benchmark (&seqmodel_prepend);
389
557
add_benchmark (&seqmodel_sorted);
390
558
add_benchmark (&seqmodel_read_string);
559
add_benchmark (&seqmodel_read_row);
560
add_benchmark (&seqmodel_clear);
561
add_benchmark (&seqmodel_walk_next);
562
add_benchmark (&seqmodel_walk_pos);
391
563
add_benchmark (&filtermodel_collate);
392
564
add_benchmark (&filtermodel_collate_desc);
393
565
add_benchmark (&filtermodel_sort_uint);
566
add_benchmark (&tree_index_prefix_search);
395
568
run_benchmarks (argc > 1 ? prefixes : NULL);