Benchmarking GameMaker
Do you love arguing over whether repeat loops are better than for loops? Well, as it turns out so do about a billion other GameMaker users! Well, we can now put matters such as those to rest by actually, you know, testing it!
This is a little tool that lets you run various bits of sample code to see how its performance compares to similar bits of sample code. There are a handful of example test cases to get you started.
Results are displayed with a few spiffy graphs and you can export them out to a CSV.
The Github repository can be found here, which you may be interested in contributing to. The Readme there has a bunch of additional technical information.
Please don't be awful to people who you see writing "slow" code, because god knows the GameMaker community has a problem with this.
Price
As always,
As usual, the asset is free as-is. I'll fix simple or game-breaking bugs but more involved support requires payment via either Itch or Patreon. I get the final say in what constitutes "game-breaking."
although in this case I dunno what there really is to break. I might merge in other interesting tests that people come up with though.
Credits
- Duck is by Munin
| Status | Released |
| Category | Other |
| Platforms | HTML5 |
| Rating | Rated 5.0 out of 5 stars (2 total ratings) |
| Author | Dragonite |
| Made with | GameMaker |
| Tags | benchmark, GameMaker, performance |
| Average session | About an hour |
Download
Click download now to get access to the following files:
Development log
- You can run benchmarks from the command lineAug 15, 2025
- Added lines for +/- 5% margins on the graphJul 07, 2025
- There's now a version you can play with in the browserNov 22, 2024
- Added a CSV exportNov 17, 2023






Comments
Log in with itch.io to leave a comment.
Didn’t knew
[$ "prop"]used more resources and time than.prop. Replaced all of them on my autotile system and reduced the time from avg ~200ms to avg ~20ms.Amazing job!
Variables accessed with the dot operator have their hashes evaluated at compile time, but those accessed with the struct accessor have to have them evaluated at runtime
Edit: Struct lookups which can be determined at compile time now are, so there’s no difference between [$ “prop”] and .prop, but there still is for struct lookups from a variable.
Cool idea, thanks for making this!
great tool. Kind of upsetting how slow array_push is.
I’ve been asking them for ages to have it allocate memory in chunks the same way ds_list_add does, but it hasn’t happened yet
Update: it now has https://www.youtube.com/watch?v=C7UrZ7JpQe8