mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
* 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>
23 lines
749 B
Python
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)
|