diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-16 15:33:44 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-16 15:33:44 +0000 |
| commit | 66ef2cd08fe275af81125a1d04bc2f8e9c0b4ac2 (patch) | |
| tree | 2ed4c060946fe4d16d78c4533eb67414344824b0 /src/game | |
| parent | 7b6ed7861a2ed94914e1114d84f0d7f39c400585 (diff) | |
| download | zcatch-66ef2cd08fe275af81125a1d04bc2f8e9c0b4ac2.tar.gz zcatch-66ef2cd08fe275af81125a1d04bc2f8e9c0b4ac2.zip | |
added performance timers
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/server/gs_server.cpp | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp index f6bc7cb6..a34766f3 100644 --- a/src/game/server/gs_server.cpp +++ b/src/game/server/gs_server.cpp @@ -249,26 +249,54 @@ void game_world::tick() if(!paused) { + static PERFORMACE_INFO scopes[OBJTYPE_FLAG+1] = + { + {"null", 0}, + {"game", 0}, + {"player_info", 0}, + {"player_character", 0}, + {"projectile", 0}, + {"powerup", 0}, + {"flag", 0} + }; + + static PERFORMACE_INFO scopes_def[OBJTYPE_FLAG+1] = + { + {"null", 0}, + {"game", 0}, + {"player_info", 0}, + {"player_character", 0}, + {"projectile", 0}, + {"powerup", 0}, + {"flag", 0} + }; + + static PERFORMACE_INFO tick_scope = {"tick", 0}; + perf_start(&tick_scope); + // update all objects for(entity *ent = first_entity; ent; ent = ent->next_entity) { - int64 start = time_get(); + if(ent->objtype >= 0 && ent->objtype < OBJTYPE_FLAG) + perf_start(&scopes[ent->objtype]); ent->tick(); - int64 delta = time_get()-start; - - if(config.debug && delta > time_freq()/10) - dbg_msg("world", "entity tick hitch warning! %.2f ms objtype=%d", delta/(float)time_freq()*1000, ent->objtype); + if(ent->objtype >= 0 && ent->objtype < OBJTYPE_FLAG) + perf_end(); } + + perf_end(); + static PERFORMACE_INFO deftick_scope = {"tick_defered", 0}; + perf_start(&deftick_scope); for(entity *ent = first_entity; ent; ent = ent->next_entity) { - int64 start = time_get(); + if(ent->objtype >= 0 && ent->objtype < OBJTYPE_FLAG) + perf_start(&scopes_def[ent->objtype]); ent->tick_defered(); - int64 delta = time_get()-start; - - if(config.debug && delta > time_freq()/10) - dbg_msg("world", "entity defered tick hitch warning! %.2f ms objtype=%d", delta/(float)time_freq()*1000, ent->objtype); + if(ent->objtype >= 0 && ent->objtype < OBJTYPE_FLAG) + perf_end(); } + perf_end(); } remove_entities(); @@ -1637,6 +1665,7 @@ void mods_tick() { // clear all events events.clear(); + world->tick(); if(world->paused) // make sure that the game object always updates |