The comment about self.access_rule computing faster on average appears to no longer be correct with the current caching system for region accessibility, resulting in self.parent_region.can_reach computing faster on average.
How was this tested?
Generation of template yamls for each game (excluding sudoku) that do not require a rom to generate (52 total), generated with python -O .\Generate.py --seed 1 (all durations averaged over 4 or 5 generations):
Full generation with spoiler: 1 and no progression balancing: 89.9s -> 72.6s
Only output from above case: 2.6s -> 2.2s
Full generation with spoiler: 3 and no progression balancing: 769.9s -> 627.1s
Only playthrough calculation + paths from above case: 680.5s -> 555.3s
Full generation with spoiler: 1 with default progression balancing: 123.5s -> 98.3s
Only progression balancing from above case: 11.3s -> 9.6s
The durations of only output/playthrough/balancing were obtained by comparing log timestamps.
Output duration = Done - Beginning output...
Playthrough calculation + paths duration = Creating final archive - Calculating playthrough.
Progression balancing duration = Beginning output... - Balancing multiworld progression for 52 Players.
What is this fixing or adding?
The comment about self.access_rule computing faster on average appears to no longer be correct with the current caching system for region accessibility, resulting in self.parent_region.can_reach computing faster on average.
How was this tested?
Generation of template yamls for each game (excluding sudoku) that do not require a rom to generate (52 total), generated with
python -O .\Generate.py --seed 1
(all durations averaged over 4 or 5 generations):Full generation with
spoiler: 1
and no progression balancing: 89.9s -> 72.6s Only output from above case: 2.6s -> 2.2sFull generation with
spoiler: 3
and no progression balancing: 769.9s -> 627.1s Only playthrough calculation + paths from above case: 680.5s -> 555.3sFull generation with
spoiler: 1
with default progression balancing: 123.5s -> 98.3s Only progression balancing from above case: 11.3s -> 9.6sThe durations of only output/playthrough/balancing were obtained by comparing log timestamps. Output duration =
Done
-Beginning output...
Playthrough calculation + paths duration =Creating final archive
-Calculating playthrough.
Progression balancing duration =Beginning output...
-Balancing multiworld progression for 52 Players.