Preliminary measurements of puffs genlib
libraries' binary size, on x86_64 are below. Lower is better.
clang-dynamic: -rwxr-x--- 1 nigeltao eng 35235 Aug 10 14:59 libpuffs.so -rw-r----- 1 nigeltao eng 18592 Aug 10 14:59 std-flate.lo -rw-r----- 1 nigeltao eng 10080 Aug 10 14:59 std-gif.lo clang-static: -rw-r----- 1 nigeltao eng 29576 Aug 10 14:59 libpuffs.a -rw-r----- 1 nigeltao eng 18360 Aug 10 14:59 std-flate.o -rw-r----- 1 nigeltao eng 9968 Aug 10 14:59 std-gif.o gcc-dynamic: -rwxr-x--- 1 nigeltao eng 39210 Aug 10 14:59 libpuffs.so -rw-r----- 1 nigeltao eng 21448 Aug 10 14:59 std-flate.lo -rw-r----- 1 nigeltao eng 12000 Aug 10 14:59 std-gif.lo gcc-static: -rw-r----- 1 nigeltao eng 34152 Aug 10 14:59 libpuffs.a -rw-r----- 1 nigeltao eng 21200 Aug 10 14:59 std-flate.o -rw-r----- 1 nigeltao eng 11704 Aug 10 14:59 std-gif.o
Below are some standard C libraries shipped as part of Ubuntu 14.04 LTS “Trusty”. The numbers aren't directly comparable, as these libraries have a richer API, especially in providing an encoder and not just a decoder. Still, it is a reference point for e.g. Puffs flate vs libz and Puffs gif vs libgif.
dynamic: -rw-r--r-- 1 root root 100728 May 13 2013 /lib/x86_64-linux-gnu/libz.so.1.2.8 -rw-r--r-- 1 root root 36000 Dec 16 2013 /usr/lib/x86_64-linux-gnu/libgif.so.4.1.6 static: -rw-r--r-- 1 root root 142346 May 13 2013 /usr/lib/x86_64-linux-gnu/libz.a -rw-r--r-- 1 root root 51850 Dec 16 2013 /usr/lib/x86_64-linux-gnu/libgif.a
Updated on August 2017.