A downloadable Benchmark

Download NowName your own price

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.


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.


  • Duck is by Munin
Updated 17 days ago
Rated 5.0 out of 5 stars
(2 total ratings)
Made withGameMaker
Tagsbenchmark, GameMaker, performance
Average sessionAbout an hour


Download NowName your own price

Click download now to get access to the following files:

GMBenchmark.yyz 441 kB
GMBenchmark.zip 4 MB

Development log


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


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