{"id":16131371,"url":"https://github.com/calinou/godot-size-benchmarks","last_synced_at":"2025-03-18T14:31:14.895Z","repository":{"id":146797646,"uuid":"179826470","full_name":"Calinou/godot-size-benchmarks","owner":"Calinou","description":"Benchmarks to compare Godot binary sizes with different build-time options","archived":false,"fork":false,"pushed_at":"2021-01-14T19:11:31.000Z","size":16,"stargazers_count":39,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-16T21:11:18.261Z","etag":null,"topics":["benchmark","binary-size","godot","godot-engine"],"latest_commit_sha":null,"homepage":"","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Calinou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-06T11:45:45.000Z","updated_at":"2024-10-07T18:58:00.000Z","dependencies_parsed_at":"2023-05-05T15:30:23.434Z","dependency_job_id":null,"html_url":"https://github.com/Calinou/godot-size-benchmarks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Calinou%2Fgodot-size-benchmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Calinou%2Fgodot-size-benchmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Calinou%2Fgodot-size-benchmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Calinou%2Fgodot-size-benchmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Calinou","download_url":"https://codeload.github.com/Calinou/godot-size-benchmarks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244240164,"owners_count":20421404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","binary-size","godot","godot-engine"],"created_at":"2024-10-09T22:24:58.107Z","updated_at":"2025-03-18T14:31:14.890Z","avatar_url":"https://github.com/Calinou.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Godot Size Benchmarks\n\nThis repository contains a program that compiles Godot export templates with\nvarious settings to decrease file size.\n\n## Results\n\nThe results below were generated on Fedora 30 with GCC 9.1.1 from the Godot\n3.1.1 stable source code. All binaries had their debug symbols stripped.\n\n- **`full`** builds have all modules enabled.\n- **`micro`** builds have commonly-used modules enabled (such as mbedTLS or\n  Theora/WebM); lesser-used modules are disabled.\n- **`pico`** builds have all modules disabled and are optimized for size instead\n  of speed.\n- Builds with a **`_2d`** suffix have 3D support disabled.\n\nCheck the [build script](src/godot_size_benchmarks.nim) for the list of SCons\nflags used by each build type.\n\n| Platform | Build type     | Size (uncompressed) | Size (compressed) |\n| -------: | -------------- | ------------------- | ----------------- |\n|  Android | `full`         | 11.8 MB             | 11.8 MB           |\n|  Android | `full_2d`      | 9.5 MB              | 9.5 MB            |\n|  Android | `micro`        | 9.8 MB              | 9.8 MB            |\n|  Android | `micro_2d`     | 8.5 MB              | 8.5 MB            |\n|  Android | `pico`         | 8.1 MB              | 8.1 MB            |\n|  Android | `pico_2d`      | 7.1 MB              | 7.1 MB            |\n|    HTML5 | `full`         | 13.0 MB             | 4.0 MB            |\n|    HTML5 | `full_2d`      | 11.3 MB             | 3.4 MB            |\n|    HTML5 | `micro`        | 11.5 MB             | 3.4 MB            |\n|    HTML5 | `micro_2d`     | 10.2 MB             | 3.1 MB            |\n|    HTML5 | `pico`         | 10.9 MB             | 3.2 MB            |\n|    HTML5 | `pico_2d`      | 9.7 MB              | 2.9 MB            |\n|    Linux | `full`         | 30.9 MB             | 12.0 MB           |\n|    Linux | `full_2d`      | 25.9 MB             | 10.0 MB           |\n|    Linux | `micro`        | 27.3 MB             | 10.4 MB           |\n|    Linux | `micro_2d`     | 23.4 MB             | 9.0 MB            |\n|    Linux | `pico`         | 15.7 MB             | 6.0 MB            |\n|    Linux | `pico_2d`      | 13.5 MB             | 5.1 MB            |\n|  Windows | `full`         | 26.7 MB             | 10.2 MB           |\n|  Windows | `full_2d`      | 22.5 MB             | 8.6 MB            |\n|  Windows | `micro`        | 23.7 MB             | 9.0 MB            |\n|  Windows | `micro_2d`     | 20.2 MB             | 7.7 MB            |\n|  Windows | ~~`pico`~~     | *(build failing)*   | *N/A*             |\n|  Windows | ~~`pico_2d`~~  | *(build failing)*   | *N/A*             |\n\n### Platform-specific notes\n\n- **Android:** Android APK sizes were measured after building for `armv7` only,\n  which means only one architecture was included in the APK. Android APKs are\n  already compressed on creation, hence the compressed size being identical to\n  the uncompressed size.\n- **HTML5:** Displayed file sizes only include the main WebAssembly blob. The\n  accompanying JavaScript file's size (330 KB uncompressed, 75 KB gzipped)\n  remains mostly constant. Compressed sizes were measured by compressing the\n  WebAssembly blob with `gzip -6`, which is the compression level used on most\n  Web servers (after enabling compression for `.wasm` files).\n- **Linux:** Binaries were compiled with link-time optimization enabled.\n  Compressed sizes were measured by creating ZIP archives using\n  `7z a -mx9 \u003cfile\u003e.zip \u003cfile\u003e`.\n- **Windows:** Binaries were compiled using MinGW with link-time optimization\n  enabled. Compressed sizes were measured by creating ZIP archives using\n  `7z a -mx9 \u003cfile\u003e.zip \u003cfile\u003e`.\n\n## Running the benchmark locally\n\n**Note:** The benchmark runner currently only supports Linux.\n\n### Pre-requisites\n\n- [Nim](https://nim-lang.org/) 0.20.0 or later (can be installed via\n  [choosenim](https://github.com/dom96/choosenim)).\n- Godot build dependencies set up for\n  [Android](http://docs.godotengine.org/en/latest/development/compiling/compiling_for_android.html),\n  [HTML5](https://docs.godotengine.org/en/latest/development/compiling/compiling_for_web.html),\n  [Linux](https://docs.godotengine.org/en/latest/development/compiling/compiling_for_x11.html) and\n  [Windows](https://docs.godotengine.org/en/latest/development/compiling/compiling_for_windows.html) (MinGW).\n- This Git repository **(with submodules initialized)**.\n\n### Running\n\n```bash\ngit clone --recursive https://github.com/Calinou/godot-size-benchmarks.git\ncd godot-size-benchmarks/\nnimble run\n```\n\nWait for the script to build all binaries; they will be available in the\n`godot/bin/` directory.\n\n## Resources\n\n- [Optimizing a build for size](http://docs.godotengine.org/en/latest/development/compiling/optimizing_for_size.html)\n  in the Godot documentation.\n- [Multiple APK support in Google Play](https://developer.android.com/google/play/publishing/multiple-apks)\n  to publish one APK per CPU architecture, greatly reducing the file size.\n\n## License\n\nCopyright © 2019 Hugo Locurcio and contributors\n\nUnless otherwise specified, files in this repository are licensed under the MIT\nlicense; see [LICENSE.md](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalinou%2Fgodot-size-benchmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalinou%2Fgodot-size-benchmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalinou%2Fgodot-size-benchmarks/lists"}