On 12/30/2013 10:55 AM, Holger Hans Peter Freyther wrote:
Good Morning,
during the 30C3 we had some "broken channels" because the BTS didn't respond within four seconds to a Channel Activation/Deactivation. I started to look at it with perf and "snprintf" appears to be called a lot and did show up in the top.
snprintf is mostly called from within osmo_hexdump and gsm_lchan_name. Both of these function calls are used in our logging calls throughout the code.
Would it be worth it to get rid of snprintf in osmo_hexdump ? Anecdotally I've converted similar code away from snprintf to a more raw variant resulting in a 7-8 times speed increase of the program whose main purpose was to hex encode messages.
see attached patch for an example (it may now truncate the hex dumps at a byte boundary vs at a nibble when using snprintf if the hex exceeds sizeof(hexd_buff) though)