Skip to content

Add binary size savings estimations for each feature #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Calinou opened this issue Jan 29, 2021 · 4 comments
Open

Add binary size savings estimations for each feature #3

Calinou opened this issue Jan 29, 2021 · 4 comments
Labels
enhancement New feature or request

Comments

@Calinou
Copy link
Contributor

Calinou commented Jan 29, 2021

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 🙂

@Calinou Calinou added the enhancement New feature or request label Jan 29, 2021
@JeffVenancius
Copy link

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
Copy link
Contributor Author

Calinou commented Oct 18, 2021

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
Copy link

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
Copy link

33,7mb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants