Question about Blender's overall filesize

I’m not a coder. I started to learn Python and just felt a little exhausted by it. Maybe I’ll pick it back up one day.
I picked up little bits of how coding works, but just sorta overall basics.

I’ve used Maya before a long time ago before the trial ran out, and tons of other software, and I feel Blender, for all it can do, has a pretty small file size, when I go to download the latest copy.

Does anyone else think this? Does anyone else disagree and think it’s too big? Is it just me? Is Blender wrapped up nicely in a tight little package because of how the tools are implemented into the core program? Or is it really just a decent file size and I’m wrong?
I guess it’s a weird question, but it’s something I’ve always wondered about.

Autodesk products come with hundreds of materials, textures, help documents, training videos, DRM software, demo scenes and other things that eat up disk space. Blender comes with just Blender (for better or for worse).

If you ask a coder, it’s way too big.

from a user viewpoint;

I can´t stand programs which take seconds or getting near half a minute or worse, just for loading the UI and plastering my eyes with floating windows. ugh

it is like getting forced to see all the unskippable and unnecessary intros and trailers and drm warnings on bought items.

don´t force me to wait!

Blender makes it more than right, it loads almost instantly due to its filesize and that helps my creativity.

Yup. Blender’s pretty light compared to Maya which is a couple gigs or so.:slight_smile:

Blender doesn’t load fast becase the executable size is small, in comparison to other applications it’s actually pretty big.
Also I don’t believe that maya’s executable is several gigs large.

It’s really big actually, but the size of main executable doesn’t tell a lot (something of course…). The current Windows release has about 1700 files. Really.

Maya checks and loads a lot of shit when you start it.
The file size doesnt have much to do with loading times.

Just got done downloading it. The initial launcher was 2.03 gigs, Autodesk Folder on C Drive is 2.55 gigs, and the Autodesk folder in Program Files is 2.84. That one has Matchmover, Composite, FBX ect.

Anyway pretty large.

Where does program size come from? Seems to me that in order to be 65MB it has to have 65 million x 8 characters in its code. Where does the size come from?

The DEV’s can answer that better than me. All I did was check file sizes.

There are a lot of libraries built in. And not every feature is actually needed i guess. Stripping it down would be tedious and what for? Overall size of a blender installation is too small to care.

Built-in strings like names and description take some space too for sure (although only english is in the executable). And don’t forget compiler optimizations!

I remember a similar discussion from a few years ago. Then, one of the answers was that Blender is written in C, which results in much smaller file size when compiled (compared to let’s say C++).

That’s a wrong answer. Usually it’s “hello world” programs in those size comparisons, but in reality C++ most likely is smaller, because the way classes vs. functions work. There is more information sent to a function and they use more local variables per function than in class implementation which can use class-scope variables. Also, class instances are easier to use and then release as locals, reducing the memory consumption at a time.

Program files does NOT work that way. The code went through compilations. Chars a source have does NOT correlates to the machine code generated.

Try compile a Hello World program and see the size.

To answer the general question - why is Blender so big.
Its mostly not Blender, its libraries blender depends on which are mostly linked into the binary (apart of the exe).

Main culprits are…

  • ffmpeg
  • opencollada
  • openexr
  • llvm
    … there are a few other smaller libraries that still add up opencolorio openimageio, sdl, openal…

If you build without these libraries (we keep them optional) blender binary can be under 10mb.

@Krice it depends what features of C++ are used, templates and clever inlining in C++ (stdc++, boost libraries) can bloat binary size a lot.

liklewise C macros can bloat out code too.
Though with macros its more obvious your inserting a large chunk of code all over (which you probably dont want to do).

BLI_array.h was doing some nasty C macros and I managed to cut ~200kb of blenders filesize by moving them into functions.