gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r11963 - in gnunet/src: transport util


From: gnunet
Subject: [GNUnet-SVN] r11963 - in gnunet/src: transport util
Date: Fri, 25 Jun 2010 23:41:35 +0200

Author: grothoff
Date: 2010-06-25 23:41:35 +0200 (Fri, 25 Jun 2010)
New Revision: 11963

Modified:
   gnunet/src/transport/gnunet-service-transport.c
   gnunet/src/transport/plugin_transport_tcp.c
   gnunet/src/transport/test_transport_api_reliability.c
   gnunet/src/transport/test_transport_api_tcp_peer1.conf
   gnunet/src/transport/test_transport_api_tcp_peer2.conf
   gnunet/src/util/scheduler.c
Log:
marking performance issues

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2010-06-25 21:09:43 UTC 
(rev 11962)
+++ gnunet/src/transport/gnunet-service-transport.c     2010-06-25 21:41:35 UTC 
(rev 11963)
@@ -1772,6 +1772,7 @@
   mq = GNUNET_malloc (sizeof (struct MessageQueue) + message_buf_size);
   mq->specific_address = peer_address;
   mq->client = client;
+  /* FIXME: this memcpy can be up to 7% of our total runtime! */
   memcpy (&mq[1], message_buf, message_buf_size);
   mq->message_buf = (const char*) &mq[1];
   mq->message_buf_size = message_buf_size;
@@ -4781,6 +4782,7 @@
   tcmc->priority = ntohl (obm->priority);
   tcmc->timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_ntoh 
(obm->timeout));
   tcmc->msize = msize;
+  /* FIXME: this memcpy can be up to 7% of our total runtime */
   memcpy (&tcmc[1], obmm, msize);
   GNUNET_SERVER_client_keep (client);
   setup_peer_check_blacklist (&obm->peer, GNUNET_YES,

Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2010-06-25 21:09:43 UTC (rev 
11962)
+++ gnunet/src/transport/plugin_transport_tcp.c 2010-06-25 21:41:35 UTC (rev 
11963)
@@ -647,6 +647,7 @@
                                   session->pending_messages_tail,
                                   pos);
       GNUNET_assert (size >= pos->message_size);
+      /* FIXME: this memcpy can be up to 7% of our total runtime */
       memcpy (cbuf, pos->msg, pos->message_size);
       cbuf += pos->message_size;
       ret += pos->message_size;
@@ -1089,8 +1090,11 @@
 
           /* create new message entry */
           pm = GNUNET_malloc (sizeof (struct PendingMessage) + msgbuf_size);
+         /* FIXME: the memset of this malloc can be up to 2% of our total 
runtime */
           pm->msg = (const char*) &pm[1];
-          memcpy (&pm[1], msg, msgbuf_size);
+          memcpy (&pm[1], msg, msgbuf_size); 
+         /* FIXME: this memcpy can be up to 7% of our total run-time 
+            (for transport service) */
           pm->message_size = msgbuf_size;
           pm->timeout = GNUNET_TIME_relative_to_absolute (timeout);
           pm->transmit_cont = cont;

Modified: gnunet/src/transport/test_transport_api_reliability.c
===================================================================
--- gnunet/src/transport/test_transport_api_reliability.c       2010-06-25 
21:09:43 UTC (rev 11962)
+++ gnunet/src/transport/test_transport_api_reliability.c       2010-06-25 
21:41:35 UTC (rev 11963)
@@ -47,7 +47,7 @@
  * 'MAX_PENDING' in 'gnunet-service-transport.c', otherwise
  * messages may be dropped even for a reliable transport.
  */
-#define TOTAL_MSGS (60000 * 2)
+#define TOTAL_MSGS (60000 * 20)
 
 /**
  * How long until we give up on transmitting the message?

Modified: gnunet/src/transport/test_transport_api_tcp_peer1.conf
===================================================================
--- gnunet/src/transport/test_transport_api_tcp_peer1.conf      2010-06-25 
21:09:43 UTC (rev 11962)
+++ gnunet/src/transport/test_transport_api_tcp_peer1.conf      2010-06-25 
21:41:35 UTC (rev 11963)
@@ -34,7 +34,7 @@
 PLUGINS = tcp
 #DEBUG = YES
 #PREFIX = xterm -T transport2 -e gdb --command=cmd --args
-#PREFIX = valgrind --leak-check=full
+#PREFIX = valgrind --tool=callgrind
 ACCEPT_FROM6 = ::1;
 ACCEPT_FROM = 127.0.0.1;
 NEIGHBOUR_LIMIT = 50

Modified: gnunet/src/transport/test_transport_api_tcp_peer2.conf
===================================================================
--- gnunet/src/transport/test_transport_api_tcp_peer2.conf      2010-06-25 
21:09:43 UTC (rev 11962)
+++ gnunet/src/transport/test_transport_api_tcp_peer2.conf      2010-06-25 
21:41:35 UTC (rev 11963)
@@ -35,6 +35,7 @@
 #DEBUG = YES
 ACCEPT_FROM6 = ::1;
 ACCEPT_FROM = 127.0.0.1;
+#PREFIX = valgrind --tool=callgrind
 NEIGHBOUR_LIMIT = 50
 #BINARY = 
/home/mrwiggles/documents/research/gnunet/gnunet-ng/src/transport/.libs/gnunet-service-transport
 BINARY = gnunet-service-transport

Modified: gnunet/src/util/scheduler.c
===================================================================
--- gnunet/src/util/scheduler.c 2010-06-25 21:09:43 UTC (rev 11962)
+++ gnunet/src/util/scheduler.c 2010-06-25 21:41:35 UTC (rev 11963)
@@ -306,6 +306,10 @@
           if (timeout->value > to.value)
             *timeout = to;
         }
+      /* FIXME: this is a very expensive (9% of runtime for some
+        benchmarks!) way to merge the bit sets; specializing
+        the common case where we only have one bit in the pos's
+        set should improve performance dramatically! */
       if (pos->read_set != NULL)
         GNUNET_NETWORK_fdset_add (rs, pos->read_set);
       if (pos->write_set != NULL)
@@ -332,6 +336,10 @@
 {
   if (NULL == want)
     return GNUNET_NO;
+  /* FIXME: this is a very expensive (10% of runtime for some
+     benchmarks!) way to merge the bit sets; specializing
+     the common case where we only have one bit in the pos's
+     set should improve performance dramatically! */
   if (GNUNET_NETWORK_fdset_overlap (ready, want))
     {
       /* copy all over (yes, there maybe unrelated bits,




reply via email to

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