How to correctly use Visual Studio as c++ dev.

Why is the Notepad++ my Visual Studio produced as instructed in BUILD.MD having file size twice larger than its official release? How can the author squeeze to far less size on release?
One possibility, UPX compression.
I was just able to compress notepad++.exe to be 38.49% of its size through upx.
        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   2468016 ->    949936   38.49%    win32/pe     notepad++.exe

So I doubt that's it. Unless notepad++ just recently started compressing their exe's. I suppose it's worth a try.

Perhaps it's a 32-bit vs 64-bit difference? I don't know much more than that.

Edit: According to https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/visual.net/notepadPlus.vcxproj it appears that even the Release versions have GenerateDebugInformation set to true. Try setting that to false.
Last edited on
there also (if still there) may be settings in the release optimize. It used to have favor fast vs favor small for example, if you pick favor small it will make a smaller exe, and if you turn off aggressive inline, it will only inline a few things making it smaller, and so on. You can play with it, build it a few ways.
@Ganado, I did say it is a POSSIBILITY, before I looked at the .exe. Now we know the possibility wasn't.

x86 vs. x64 is a more likely possibility, as is using different optimizations and linking. Does the creator actually use VS for creating his binaries? Or another compiler?

Inquiring minds want to know.

Obsessing over file sizes at the expense of other considerations is IMO not all that productive. The author has been working on NPP for years and probably has tweaked his compiler's optimizations beyond the "out of the box" defaults.

Now, if the official release file size was several KB at most and VS produced output of several hundred MB or GB, then I'd be a bit concerned. And curious.

I have seen slight "bloat" of executable file sizes with different versions of VS compiling the same code. It's the nature of the MS beast.

Incidentally, in the latest version's (7.8.4) source there is no BUILD.MD file. Makes me slightly intrigued what version the OP is trying to build.
Last edited on
Obsessing over file sizes at the expense of other considerations is IMO not all that productive.

I agree. I do like small dll or lib files, for larger projects, because you have to send those out to everyone and bloat = bandwidth = time to update = bad consumer experience esp the first 3 days after an update. Cutting the size in half is a big deal. Shaving off every byte you can is silly.
Last edited on
@Ganado, I was merely mentioning I said something before actually checking. No offense taken at being politely corrected. :)

I don't melt down because something contradictory is said, unlike someone else.

Looking at a project's Linker->Debugging property page turning OFF generating debug information is not possible even for a release. The only option is changing the type of info generated. A guess....this is for C/C++ assert debugging.

@jonin, there are several optimization switches to muck around with, accessible from the project's C++ optimization and Linker optimization property pages.
Topic archived. No new replies allowed.