Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pokemon R/B: Avoid a case of repeatedly checking of state in ER #2376

Merged
merged 2 commits into from
Oct 27, 2023

Conversation

DeamonHunter
Copy link
Collaborator

@DeamonHunter DeamonHunter commented Oct 27, 2023

What is this fixing or adding?

This PR changes Pokemon ER to not constantly check state inside the dead_ends() function for cases where it should already know the outcome. This PR should not change any actual logic within ER.

This seems to save roughly 30%-50% of time spent within create_regions. Though the time will still grow as more players are in the generation, and it seemingly does less as more players are completed.

Time Before/After running 32 Insanity ER + Trainer Sanity

Took 8.56065619999572/2.9293287999971653 seconds in PokemonRedBlueWorld.create_regions for player 1, named DeamonPoke1.
Took 7.143686400006118/3.29854239999986 seconds in PokemonRedBlueWorld.create_regions for player 2, named DeamonPoke2.
Took 6.896408300002804/2.74106490000122 seconds in PokemonRedBlueWorld.create_regions for player 3, named DeamonPoke3.
Took 7.425772599999618/3.879308800002036 seconds in PokemonRedBlueWorld.create_regions for player 4, named DeamonPoke4.
Took 7.371204299997771/3.8762186000021757 seconds in PokemonRedBlueWorld.create_regions for player 5, named DeamonPoke5.
Took 7.299927499996556/4.339967199994135 seconds in PokemonRedBlueWorld.create_regions for player 6, named DeamonPoke6.
Took 9.710574600001564/3.6646945999964373 seconds in PokemonRedBlueWorld.create_regions for player 7, named DeamonPoke7.
Took 7.391483999999764/4.658047500000976 seconds in PokemonRedBlueWorld.create_regions for player 8, named DeamonPoke8.
Took 9.03062779999891/4.743314999999711 seconds in PokemonRedBlueWorld.create_regions for player 9, named DeamonPoke9.
Took 8.786249099997804/4.909083099999407 seconds in PokemonRedBlueWorld.create_regions for player 10, named DeamonPoke10.
Took 8.239895099999558/4.663943200001086 seconds in PokemonRedBlueWorld.create_regions for player 11, named DeamonPoke11.
Took 8.038863000001584/5.164306799997576 seconds in PokemonRedBlueWorld.create_regions for player 12, named DeamonPoke12.
Took 8.229623200000788/5.3458471999983885 seconds in PokemonRedBlueWorld.create_regions for player 13, named DeamonPoke13.
Took 9.547204100003/4.990577700002177 seconds in PokemonRedBlueWorld.create_regions for player 14, named DeamonPoke14.
Took 10.02850749999925/5.462006800000381 seconds in PokemonRedBlueWorld.create_regions for player 15, named DeamonPoke15.
Took 9.299213799997233/5.410809099994367 seconds in PokemonRedBlueWorld.create_regions for player 16, named DeamonPoke16.
Took 12.253399599998374/6.160892200001399 seconds in PokemonRedBlueWorld.create_regions for player 17, named DeamonPoke17.
Took 11.063624300004449/6.0270673999984865 seconds in PokemonRedBlueWorld.create_regions for player 18, named DeamonPoke18.
Took 9.021901699998125/6.195926100001088 seconds in PokemonRedBlueWorld.create_regions for player 19, named DeamonPoke19.
Took 8.610390299996652/6.080402200001117 seconds in PokemonRedBlueWorld.create_regions for player 20, named DeamonPoke20.
Took 8.950030599997262/5.970319799998833 seconds in PokemonRedBlueWorld.create_regions for player 21, named DeamonPoke21.
Took 9.67881650000345/7.346182000001136 seconds in PokemonRedBlueWorld.create_regions for player 22, named DeamonPoke22.
Took 11.279455000003509/6.902511199994478 seconds in PokemonRedBlueWorld.create_regions for player 23, named DeamonPoke23.
Took 14.597166300001845/7.4322421999968356 seconds in PokemonRedBlueWorld.create_regions for player 24, named DeamonPoke24.
Took 12.776494300000195/8.053918999998132 seconds in PokemonRedBlueWorld.create_regions for player 25, named DeamonPoke25.
Took 12.21953680000297/7.173849800004973 seconds in PokemonRedBlueWorld.create_regions for player 26, named DeamonPoke26.
Took 9.828148599997803/8.035678799999005 seconds in PokemonRedBlueWorld.create_regions for player 27, named DeamonPoke27.
Took 14.274174500002118/7.92050670000026 seconds in PokemonRedBlueWorld.create_regions for player 28, named DeamonPoke28.
Took 16.490372600004775/7.320013299999118 seconds in PokemonRedBlueWorld.create_regions for player 29, named DeamonPoke29.
Took 11.913644500004011/7.762926600000355 seconds in PokemonRedBlueWorld.create_regions for player 30, named DeamonPoke30.
Took 12.522948100006033/9.004914600001939 seconds in PokemonRedBlueWorld.create_regions for player 31, named DeamonPoke31.
Took 14.019620300001407/9.611287599997013 seconds in PokemonRedBlueWorld.create_regions for player 32, named DeamonPoke32.

How was this tested?

Tests + Generations (32 Insanity ER run, 32 Full ER run, 32 Simple ER run, 32 No ER run, and my combined yaml for the big async.)

@DeamonHunter DeamonHunter added the is: refactor/cleanup Improvements to code/output readability or organizization. label Oct 27, 2023
Copy link
Contributor

@Alchav Alchav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have not tested but it makes sense to me

@Berserker66 Berserker66 merged commit 6061bff into ArchipelagoMW:main Oct 27, 2023
12 checks passed
FlySniper pushed a commit to FlySniper/Archipelago that referenced this pull request Nov 14, 2023
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: refactor/cleanup Improvements to code/output readability or organizization.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants