I've been experimenting with my in-game debugger trying to see if I can measure the impact of code in each Begin/Step/End/Alarms etc. Everything I know about GM says this is impossible to do accurately, but I just wanted to see where I could take it. Basically this is done by using get_timer() in each of these events in the debugger. Importantly, the debugger object is the first instance created in the game through creation code in the first room, though I've also tried placing them in the room and using the instance creation order in the room editor. I have no events in the Begin Step or End Step in any instance in the game (except the debugger itself), I'm only using Step or repeating Alarm events. A few issues I wanted some feedback on. First, the Begin Step time is calculated in Alarm.If I place any code in a repeating alarm for any other instances in the game, the Begin Step graph jumps up So despite the fact my debugger is the first instance in-game, it's alarm isn't running before the others. This is why I use alarm for other instances. Apparently alarms execute in order. End Step is harder though. Like I said, I have nothing in the End Step and you can definitely see some action on the graph. I am generating waves of particles in the Step Event. At first I thought this must be GM internally calculating particle movements in the End Step? Not sure. However, another issue. I tried moving several instances into the End Step to see if the graph shifted from Step to End. It didn't. So again it looks like the debugger may not be executing its events first despite the fact it's the first instance. So.... fool's errand?