Ehren's Blog

Binary size results after optimization

Posted in Seneca by ehren on December 4, 2009

Here’s a quick rundown of the binary size reduction from running my plugin on mozilla-central:

These libraries had a minor code size decrease:

without-plugin 93 ./dist/lib/libfreebl3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/freebl/Linux_SIN
with-plugin 90 ./dist/lib/libfreebl3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/freebl/Linux_SINGLE_SH
without-plugin 68 ./dist/lib/libnss3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/nss/libnss3.so
with-plugin 65 ./dist/lib/libnss3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/nss/libnss3.so
without-plugin 75 ./dist/lib/libnssckbi.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/nssckbi/libnssck
with-plugin 72 ./dist/lib/libnssckbi.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/nssckbi/libnssckbi.so
without-plugin 74 ./dist/lib/libnssdbm3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/nssdbm/libnssdbm
with-plugin 71 ./dist/lib/libnssdbm3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/nssdbm/libnssdbm3.so
without-plugin 76 ./dist/lib/libnssutil3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/nssutil/libnssu
with-plugin 73 ./dist/lib/libnssutil3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/nssutil/libnssutil3.s
without-plugin 72 ./dist/lib/libsmime3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/smime/libsmime3.s
with-plugin 69 ./dist/lib/libsmime3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/smime/libsmime3.so
without-plugin 76 ./dist/lib/libsoftokn3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/softokn/libsoft
with-plugin 73 ./dist/lib/libsoftokn3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/softokn/libsoftokn3.s
without-plugin 68 ./dist/lib/libssl3.so -> /home/ehren/mozilla-central-without-plugin/objdir/nss/ssl/libssl3.so
with-plugin 65 ./dist/lib/libssl3.so -> /home/ehren/mozilla-central-with-plugin/objdir/nss/ssl/libssl3.so

Total savings: 24 bytes across 8 libraries.

Everything else was unchanged. The full results can be viewed here.

Note: this is after patching 1677 member functions which resulted in 1305 optimizations performed (this means there are about 1305 value returning calls to these 1677 functions).

Btw I obtained this data running find . -name '*.so' | xargs ls -l > ~/with-plugin.txt on both build directories, and then by sorting and merging the results ie cat without-plugin.txt with-plugin.txt | sort -k 8,15 > merged-size-results.txt

Incidentally, I think the the code size increase I reported previously was just me reading some diff results wrong.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: