• Explorer09's avatar
    Optimize Strings_startWith() · bf35921a
    Explorer09 authored
    Use strncmp() combined with a strlen() will give better performance
    than a strstr in worst case. Especially when the match prefix is a
    constant and not a variable.
    
    While we are at it, replace the match() function in linux/Battery.c,
    which uses a naive algorithm, with a macro that does better job by
    utilizing Strings_startWith().
    
        $ gcc --version | head -n 1
        gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
        $ uname -m
        x86_64
        $ size htop.old htop.new
           text   data    bss    dec    hex filename
         137929  15112   3776 156817  26491 htop.old
         137784  15104   3776 156664  263f8 htop.new
    
    Signed-off-by: Kang-Che Sung <explorer09 @ gmail.com>
    bf35921a
Battery.c 8.36 KB