aboutsummaryrefslogtreecommitdiff
path: root/src/rps
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2018-03-21 07:56:51 +0100
committerJulius Bünger <buenger@mytum.de>2018-03-21 10:12:30 +0100
commit9d068580565b7ad49f5db5e3dae7b538f0f9bd5b (patch)
tree3727e33407c8e4457bf6808c05b5c6656f1c8bf4 /src/rps
parent29d419cdf833f2b2115250373c1a015f12a017e1 (diff)
downloadgnunet-9d068580565b7ad49f5db5e3dae7b538f0f9bd5b.tar.gz
gnunet-9d068580565b7ad49f5db5e3dae7b538f0f9bd5b.zip
rps profiler: log view sizes
Diffstat (limited to 'src/rps')
-rw-r--r--src/rps/rps-test_util.c18
-rw-r--r--src/rps/test_rps.c35
2 files changed, 48 insertions, 5 deletions
diff --git a/src/rps/rps-test_util.c b/src/rps/rps-test_util.c
index 882f945c9..e492b76b7 100644
--- a/src/rps/rps-test_util.c
+++ b/src/rps/rps-test_util.c
@@ -43,6 +43,7 @@ to_file_ (char *file_name, char *line)
43{ 43{
44 struct GNUNET_DISK_FileHandle *f; 44 struct GNUNET_DISK_FileHandle *f;
45 char output_buffer[512]; 45 char output_buffer[512];
46 char *output_buffer_p;
46 //size_t size; 47 //size_t size;
47 int size; 48 int size;
48 size_t size2; 49 size_t size2;
@@ -62,8 +63,14 @@ to_file_ (char *file_name, char *line)
62 file_name); 63 file_name);
63 return; 64 return;
64 } 65 }
65 size = GNUNET_snprintf (output_buffer, 66 if (512 < strlen (line) + 18)
66 sizeof (output_buffer), 67 {
68 output_buffer_p = GNUNET_malloc ((strlen (line) + 18) * sizeof (char));
69 } else {
70 output_buffer_p = &output_buffer[0];
71 }
72 size = GNUNET_snprintf (output_buffer_p,
73 sizeof (output_buffer_p),
67 "%llu %s\n", 74 "%llu %s\n",
68 GNUNET_TIME_absolute_get ().abs_value_us, 75 GNUNET_TIME_absolute_get ().abs_value_us,
69 line); 76 line);
@@ -75,7 +82,7 @@ to_file_ (char *file_name, char *line)
75 return; 82 return;
76 } 83 }
77 84
78 size2 = GNUNET_DISK_file_write (f, output_buffer, size); 85 size2 = GNUNET_DISK_file_write (f, output_buffer_p, size);
79 if (size != size2) 86 if (size != size2)
80 { 87 {
81 LOG (GNUNET_ERROR_TYPE_WARNING, 88 LOG (GNUNET_ERROR_TYPE_WARNING,
@@ -90,6 +97,11 @@ to_file_ (char *file_name, char *line)
90 return; 97 return;
91 } 98 }
92 99
100 if (512 < strlen (line) + 18)
101 {
102 GNUNET_free (output_buffer_p);
103 }
104
93 if (GNUNET_YES != GNUNET_DISK_file_close (f)) 105 if (GNUNET_YES != GNUNET_DISK_file_close (f))
94 LOG (GNUNET_ERROR_TYPE_WARNING, 106 LOG (GNUNET_ERROR_TYPE_WARNING,
95 "Unable to close file\n"); 107 "Unable to close file\n");
diff --git a/src/rps/test_rps.c b/src/rps/test_rps.c
index 127b973ac..d9f0a2c77 100644
--- a/src/rps/test_rps.c
+++ b/src/rps/test_rps.c
@@ -1878,9 +1878,40 @@ void compute_diversity ()
1878 GNUNET_free (deviation); 1878 GNUNET_free (deviation);
1879} 1879}
1880 1880
1881void all_views_updated_cb () 1881void print_view_sizes()
1882{ 1882{
1883 compute_diversity (); 1883 uint32_t i;
1884 char *view_sizes_str = NULL;
1885 uint32_t view_sizes_str_len = 0;
1886 char view_size_curr[32] = { 0 };
1887
1888 GNUNET_array_grow (view_sizes_str, view_sizes_str_len, num_peers * 3);
1889 for (i = 0; i < num_peers; i++) /* Peer to count */
1890 {
1891 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1892 "View size of %" PRIu32 ". [%s] is %" PRIu32 "\n",
1893 i,
1894 GNUNET_i2s (rps_peers[i].peer_id),
1895 rps_peers[i].cur_view_count);
1896 GNUNET_snprintf (view_size_curr,
1897 sizeof (view_size_curr),
1898 " %" PRIu32 "",
1899 rps_peers[i].cur_view_count);
1900 if (view_sizes_str_len < view_sizes_str_len + strlen (view_size_curr))
1901 {
1902 GNUNET_array_grow (view_sizes_str, view_sizes_str_len, view_sizes_str_len + 10);
1903 }
1904 strncat (view_sizes_str, view_size_curr, strlen(view_size_curr));
1905 }
1906 to_file_ ("/tmp/rps/view_sizes.txt",
1907 view_sizes_str);
1908 GNUNET_array_grow (view_sizes_str, view_sizes_str_len, 0);
1909}
1910
1911void all_views_updated_cb()
1912{
1913 compute_diversity();
1914 print_view_sizes();
1884} 1915}
1885 1916
1886void view_update_cb (void *cls, 1917void view_update_cb (void *cls,