I have committed some changes to core/qrp.c (r15843),

   Change qrp_can_route to use a function pointer in the routing_table
   structure. Groups of route decision routines optimize for tables
   tables from 16k to 2M (corresponding to 14 to 21 bits), in URN and
   non-URN version are 'templated'.  The fixed shift allows compilers
   to do a much better job of precomputing work.

   Profiling indicates that the 2^16 and 2^17 are the most common
   tables sizes (most likely due to lime wire).  However, all variants
   were left.  The code size is very small compared to the table
   sizes.  Also, the hottest routines will be cached.  It may be more
   sensible to order the URN and non-URN together (same cache page).
   However, it seems that URN searches are very rare (not supported by
   LW?).

   Alternate data structures could be employed with the function
   pointer method.  Sparse tables could be represented by a trees.
   Alternate function pointers could decode tables in either array
   format or tree format; However, the tree structure would trade time
   for space.

My system has a dynamic clock [Intel Prescott].  The rates are 400,
800, 1200, 2400, 3200 MHz.  Previously, the CPU would spend time in
many of the ranges.  With these changes, it is staying in the 400/800
MHz range (also 8deg C cooler).  Top measurements are useless with a
dynamic clock.  'gprof' also indicates an improvement.  However,
multiple measurements are probably best for performance improvements.

If you have top numbers before/after getting r15843 as an ultra-node.
It might be helpful to know if these changes should stay.  Although,
the changes should be architecture independent.

Regards,
Bill Pringlemeir.


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gtk-gnutella-devel mailing list
gtk-gnutella-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel

Reply via email to