]> source.dussan.org Git - rspamd.git/commitdiff
Measure time for shingles generation.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 19 Dec 2014 10:53:22 +0000 (10:53 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 19 Dec 2014 10:53:22 +0000 (10:53 +0000)
src/libutil/util.h
test/rspamd_shingles_test.c

index de723ecd3c7dc5030b505cc3b0c807bd5c12ccd2..bd2d069a17db06d005dc8f01c7d0d8af8113d5ba 100644 (file)
@@ -244,6 +244,8 @@ gsize rspamd_strlcpy_tolower (gchar *dst, const gchar *src, gsize siz);
                                                                           ((dbl) - (int)(dbl)) * 1000 * 1000; \
 } while (0)
 #define tv_to_msec(tv) ((tv)->tv_sec * 1000LLU + (tv)->tv_usec / 1000LLU)
+#define ts_to_usec(ts) ((ts)->tv_sec * 1000000LLU +                                                    \
+       (ts)->tv_nsec / 1000LLU)
 
 /* Compare two emails for building emails tree */
 gint rspamd_emails_cmp (gconstpointer a, gconstpointer b);
index 5084cd1202a9612c5722049f38b053d10af109c7..44bc1e789235652197ffeabacf9241590b24f1fa 100644 (file)
@@ -93,18 +93,22 @@ test_case (gsize cnt, gsize max_len, gdouble perm_factor)
        struct rspamd_shingle *sgl, *sgl_permuted;
        gdouble res;
        guchar key[16];
+       struct timespec ts1, ts2;
 
        ottery_rand_bytes (key, sizeof (key));
        input = generate_fuzzy_words (cnt, max_len);
+       clock_gettime (CLOCK_MONOTONIC, &ts1);
        sgl = rspamd_shingles_generate (input, key, NULL,
                        rspamd_shingles_default_filter, NULL);
+       clock_gettime (CLOCK_MONOTONIC, &ts2);
        permute_vector (input, perm_factor);
        sgl_permuted = rspamd_shingles_generate (input, key, NULL,
                        rspamd_shingles_default_filter, NULL);
 
        res = rspamd_shingles_compare (sgl, sgl_permuted);
 
-       msg_debug ("percentage of common shingles: %.3f", res);
+       msg_debug ("percentage of common shingles: %.3f, generate time: %Hd usec",
+                       res, ts_to_usec (&ts2) - ts_to_usec (&ts1));
        g_assert_cmpfloat (fabs ((1.0 - res) - sqrt (perm_factor)), <=, 0.20);
 
        free_fuzzy_words (input);
@@ -117,8 +121,8 @@ rspamd_shingles_test_func (void)
 {
        //test_case (5, 100, 0.5);
        test_case (200, 10, 0.1);
-       test_case (500, 100, 0.01);
-       test_case (5000, 200, 0.01);
-       test_case (5000, 100, 0);
-       test_case (5000, 100, 1.0);
+       test_case (500, 20, 0.01);
+       test_case (5000, 20, 0.01);
+       test_case (5000, 15, 0);
+       test_case (5000, 30, 1.0);
 }