godot-build-options-generator / godot-build-options-generator.github.io

Generate SCons options to compile custom export templates with size optimizations
https://godot-build-options-generator.github.io/
MIT License
32 stars 7 forks source link

Add binary size savings estimations for each feature #3

Open Calinou opened 3 years ago

Calinou commented 3 years ago

It would be nice to display an estimate of how much size you'll save by disabling a module or feature.

To do this, someone should build the engine dozens of times, disabling a module every time then compare the binary sizes between each disabled module. Make sure that all other build flags and configuration (OS, compiler, …) remain identical throughout the test. It will take a while, but I think it's worth the effort :slightly_smiling_face:

JeffVenancius commented 2 years ago

Hi, So, maybe I can help with that. I mean, maybe not with ALL the builds, but as I am doing something that asks me to create builds like that, I think I could share some data. How about it?

Calinou commented 2 years ago

Hi, So, maybe I can help with that. I mean, maybe not with ALL the builds, but as I am doing something that asks me to create builds like that, I think I could share some data. How about it?

I've already built all variants locally, but the size difference with each individual is pretty low most of the time. Using optimize=size alone will save more space than disabling all non-essential modules will.

35,393,168  godot.x11.opt.64.optimize_speed
35,393,168  godot.x11.opt.64.module_visualscript_enabled_no
35,393,168  godot.x11.opt.64.module_tinyexr_enabled_no
35,393,168  godot.x11.opt.64.module_etc1_enabled_no
35,393,168  godot.x11.opt.64.module_camera_enabled_no
35,384,976  godot.x11.opt.64.module_hdr_enabled_no
35,380,880  godot.x11.opt.64.module_tga_enabled_no
35,380,880  godot.x11.opt.64.module_dds_enabled_no
35,380,880  godot.x11.opt.64.module_bmp_enabled_no
35,364,496  godot.x11.opt.64.minizip_no
35,356,304  godot.x11.opt.64.module_jsonrpc_enabled_no
35,339,920  godot.x11.opt.64.module_minimp3_enabled_no
35,339,920  godot.x11.opt.64.module_jpg_enabled_no
35,327,632  godot.x11.opt.64.deprecated_no
35,323,536  godot.x11.opt.64.module_opensimplex_enabled_no
35,319,376  godot.x11.opt.64.module_stb_vorbis_enabled_no
35,298,960  godot.x11.opt.64.module_gridmap_enabled_no
35,286,672  godot.x11.opt.64.module_enet_enabled_no
35,266,192  godot.x11.opt.64.module_theora_enabled_no
35,159,696  godot.x11.opt.64.module_csg_enabled_no
34,782,800  godot.x11.opt.64.module_mbedtls_enabled_no
34,741,712  godot.x11.opt.64.module_webp_enabled_no
34,585,808  godot.x11.opt.64.module_gdscript_enabled_no
34,496,048  godot.x11.opt.64.module_gdnative_enabled_no
34,373,168  godot.x11.opt.64.module_bullet_enabled_no
22,282,000  godot.x11.opt.64.optimize_size

optimize=speed is used for all builds above, except the one ending with optimize_size.

JeffVenancius commented 2 years ago

3D and advanced_gui also reduces a little, I've got 19,1mb with everything disabled and optimized by size. Just 3D gave 31mb and advanced_gui... Well I'm making it now.

JeffVenancius commented 2 years ago

33,7mb