[olsr-dev] olsrd profiling session
Andreas Tønnesen
(spam-protected)
Sat Feb 26 21:48:32 CET 2005
Hi Sven-Ola,
Thanks for an interesting mail.
> a) Most CPU load goes with olsr_prinf() which is active even with -d 0. Only
> the output is suppressed, but redefining olsr_printf() to nothing will lower
> the CPU load to acceptable 20%. olsrd.profile1 is made with this version. I
> suggest surrounding some of the central CPU intensive debug stuff with
> if(debuglev) { olsr_printf() } or similar.
Most higher level debug output calls are defined out if DEBUG is not set
just for the reasons you mention. I think we might create a symbol that
can be defined (NODEBUG or something) that will not include any output
calls(except the most essinsial ones). I think I'll do a cleanup of what
output calls that belong in non-DEBUG defined code. Perhaps we should
even add a macro OLSR_PRINTF that does what you suggest. I'll do
something about it :)
> b) Then I checked further with several replaced mini-functions called in the
> LQ code. I was not sure, if the compiler optimizes that mini-functions to
> inline code, so I give it a try. This is olsrd.profile2 - the inline-replace
> do not have very much effect.
Remember that inline functions must be visible to the compiler at the
function call for inline to have any effect. So if the functions reside
in other object files inline will not have any effect as far as I can
remember. Perhaps this is why you saw little effect? Then again it might
just be because gcc does efficient optimizations already I guess.
- Andreas
--
Andreas Tønnesen
http://www.olsr.org
More information about the Olsr-dev
mailing list