expand GNUNET_OS_ProjectData API to also enable de-duplcation of logic for --help
[oweals/gnunet.git] / src / util / perf_crypto_hash.c
index 03b3fb4af2a0591e6fe485107ffe52b2af1e3874..8bea26e4b129e6701858b658d15c45a087ab923b 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     Copyright (C) 2002, 2003, 2004, 2006 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2002, 2003, 2004, 2006 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -42,6 +42,19 @@ perfHash ()
 }
 
 
+static void
+perfHashSmall ()
+{
+  struct GNUNET_HashCode hc;
+  unsigned int i;
+  char buf[64];
+
+  memset (buf, 1, sizeof (buf));
+  for (i = 0; i < 1024; i++)
+    GNUNET_CRYPTO_hash (buf, sizeof (buf), &hc);
+}
+
+
 static void
 perfHKDF ()
 {
@@ -67,9 +80,15 @@ main (int argc, char *argv[])
 {
   struct GNUNET_TIME_Absolute start;
 
+  start = GNUNET_TIME_absolute_get ();
+  perfHashSmall ();
+  printf ("1024x 64-byte Hash perf took %s\n",
+          GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start),
+                                                 GNUNET_YES));
+
   start = GNUNET_TIME_absolute_get ();
   perfHash ();
-  printf ("Hash perf took %s\n",
+  printf ("1024x 64k Hash perf took %s\n",
           GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start),
                                                  GNUNET_YES));
   GAUGER ("UTIL", "Cryptographic hashing",