Files
Bubberstation/tools/read_init_times.py
SkyratBot 0828007a1d [MIRROR] Add compile option for profiling mapload atom inits [MDB IGNORE] (#11252)
* Add compile option for profiling mapload atom inits

* Update code/_compile_options.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-02-08 01:19:06 +00:00

23 lines
749 B
Python

# When passed an `init_times.json` file (received from enabling `PROFILE_MAPLOAD_INIT_ATOM`),
# and an optional max-depth level, this will output init times from worst to best.
import json
import sys
if len(sys.argv) < 2:
print("Usage: read_init_times.py <init_times.json> [max_depth]")
sys.exit(1)
max_depth = int(sys.argv[2]) if len(sys.argv) > 2 else 1000
with open(sys.argv[1], "r") as file:
init_times = json.load(file)
init_times_per_type = {}
for (type, time) in init_times.items():
type = '/'.join(type.split('/')[0:max_depth+1])
init_times_per_type[type] = init_times_per_type.get(type, 0) + time
for (type, time) in sorted(init_times_per_type.items(), key = lambda x: x[1], reverse = True):
print(type, time)