]> git.ipfire.org Git - thirdparty/systemd.git/commit
basic: massively reduce the size of arphdr lookup functions
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 25 Sep 2019 10:06:05 +0000 (12:06 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 25 Sep 2019 10:17:22 +0000 (12:17 +0200)
commit7e833f301eeca5114be3315ec4f4385cf34977af
tree198405e6b83dd3f13acf997e73b565da3d4fa8ee
parent5a2904a2f7661526cfbdb19d8d425dad11afc03c
basic: massively reduce the size of arphdr lookup functions

Our biggest object in libsystemd was a table full of zeros, for the arphdr
names. Let's use a switch (which gcc nicely optimizes for us), instead a
table with a gap between 826 and 65534:

$ ls -l build{,2}/src/basic/a6ba3eb@@basic@sta/arphrd-list.c.o
-rw-rw-r--. 1 zbyszek zbyszek 540232 Sep 22 00:29 build/src/basic/a6ba3eb\@\@basic\@sta/arphrd-list.c.o
-rw-rw-r--. 1 zbyszek zbyszek  20512 Sep 25 11:56 build2/src/basic/a6ba3eb\@\@basic\@sta/arphrd-list.c.o

$ ls -l build{,2}/src/shared/libsystemd-shared-243.so
-rwxrwxr-x. 1 zbyszek zbyszek 6774368 Sep 22 00:29 build/src/shared/libsystemd-shared-243.so
-rwxrwxr-x. 1 zbyszek zbyszek 6254808 Sep 25 12:16 build2/src/shared/libsystemd-shared-243.so

No functional change.
src/basic/arphrd-list.c
src/basic/arphrd-list.h
src/basic/arphrd-to-name.awk
src/test/test-arphrd-list.c