gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] 02/02: rps profiler: collect more data


From: gnunet
Subject: [GNUnet-SVN] [gnunet] 02/02: rps profiler: collect more data
Date: Fri, 06 Apr 2018 12:43:31 +0200

This is an automated email from the git hooks/post-receive script.

julius-buenger pushed a commit to branch master
in repository gnunet.

commit 1f754809a913093ba215b6b6689d28b7dfb66e4c
Author: Julius Bünger <address@hidden>
AuthorDate: Fri Apr 6 12:42:16 2018 +0200

    rps profiler: collect more data
---
 src/rps/test_rps.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 50 insertions(+), 6 deletions(-)

diff --git a/src/rps/test_rps.c b/src/rps/test_rps.c
index e28210ed4..6ee665ad5 100644
--- a/src/rps/test_rps.c
+++ b/src/rps/test_rps.c
@@ -354,6 +354,11 @@ static struct RPSPeer *eval_peer;
 static unsigned int num_peers_online;
 
 /**
+ * @brief The added sizes of the peer's views
+ */
+static unsigned int view_sizes;
+
+/**
  * Return value from 'main'.
  */
 static int ok;
@@ -1843,6 +1848,15 @@ store_stats_file_name (struct RPSPeer *rps_peer)
   rps_peer->file_name_stats = file_name;
 }
 
+/**
+ * @brief This counts the number of peers in which views a given peer occurs.
+ *
+ * It also stores this value in the rps peer.
+ *
+ * @param peer_idx the index of the peer to count the representation
+ *
+ * @return the number of occurrences
+ */
 static uint32_t count_peer_in_views_2 (uint32_t peer_idx)
 {
   uint32_t i, j;
@@ -1857,6 +1871,7 @@ static uint32_t count_peer_in_views_2 (uint32_t peer_idx)
             sizeof (struct GNUNET_PeerIdentity)))
       {
         count++;
+        break;
       }
     }
   }
@@ -1864,6 +1879,18 @@ static uint32_t count_peer_in_views_2 (uint32_t peer_idx)
   return count;
 }
 
+static uint32_t cumulated_view_sizes ()
+{
+  uint32_t i;
+
+  view_sizes = 0;
+  for (i = 0; i < num_peers; i++) /* Peer in which view is counted */
+  {
+    view_sizes += rps_peers[i].cur_view_count;
+  }
+  return view_sizes;
+}
+
 static void count_peer_in_views (uint32_t *count_peers)
 {
   uint32_t i, j;
@@ -1945,32 +1972,49 @@ void all_views_updated_cb()
 }
 
 void view_update_cb (void *cls,
-                     uint64_t num_peers,
+                     uint64_t view_size,
                      const struct GNUNET_PeerIdentity *peers)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "View was updated (%" PRIu64 ")\n", num_peers);
+              "View was updated (%" PRIu64 ")\n", view_size);
   struct RPSPeer *rps_peer = (struct RPSPeer *) cls;
   to_file ("/tmp/rps/view_sizes.txt",
          "%" PRIu64 " %" PRIu32 "",
          rps_peer->index,
-         num_peers);
-  for (int i = 0; i < num_peers; i++)
+         view_size);
+  for (int i = 0; i < view_size; i++)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                "\t%s\n", GNUNET_i2s (&peers[i]));
   }
   GNUNET_array_grow (rps_peer->cur_view,
                      rps_peer->cur_view_count,
-                     num_peers);
+                     view_size);
   //*rps_peer->cur_view = *peers;
   memcpy (rps_peer->cur_view,
           peers,
-          num_peers * sizeof (struct GNUNET_PeerIdentity));
+          view_size * sizeof (struct GNUNET_PeerIdentity));
   to_file ("/tmp/rps/count_in_views.txt",
          "%" PRIu64 " %" PRIu32 "",
          rps_peer->index,
          count_peer_in_views_2 (rps_peer->index));
+  cumulated_view_sizes();
+  to_file ("/tmp/rps/repr.txt",
+         "%" PRIu64 /* index */
+         " %" PRIu32 /* occurrence in views */
+         " %" PRIu32 /* view sizes */
+         " %f" /* fraction of repr in views */
+         " %f" /* average view size */
+         " %f" /* prob of occurrence in view slot */
+         " %f" "", /* exp frac of repr in views */
+         rps_peer->index,
+         count_peer_in_views_2 (rps_peer->index),
+         view_sizes,
+         count_peer_in_views_2 (rps_peer->index) / (view_size * 1.0), /* 
fraction of representation in views */
+         view_sizes / (view_size * 1.0), /* average view size */
+         1.0 /view_size, /* prob of occurrence in view slot */
+         (1.0/view_size) * (view_sizes/view_size) /* expected fraction of repr 
in views */
+         );
   all_views_updated_cb();
 }
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]