On Tuesday, 31 July 2018 at 15:19:19 UTC, Dan Barbarito wrote:
Hi all,

I am starting to write a command line tool. So far it is a small (feature-wise) program but the file size is scaring me. It's already 13 megabytes, but I would expect it to be much smaller. Is it because I'm using 3 libraries so far? The libraries are: mir, vibe.d, and d2sqlite3. Would using these libraries be causing this file size?

The code can be found here (http://fossil.barbarito.me/finbot/zip/finbot.zip), if anyone wants to take a look. I am simply running "dub build" to build the binary. I tried running "dub build --build=release" but that didn't effect the file size too much.

Thanks!

If you use LDC, release build and their full LTO (-flto=full), the resulting binary should get smaller.

DFLAGS="-flto=full" dub build --compiler=ldc -b release

As an example, dlang-tour is 53M in debug build with DMD, but with LTO + release + ldc it gets down to 6.2M.

You also get a smaller build, if instead of using all of Vibe.d, you only use the subset of components you actually use, e.g.

dependency "vibe-d:web" version="~>0.8"


Reply via email to