-
Improvement
-
Resolution: Won't Do
-
Minor
-
None
-
2.6
It takes some 20 minutes to execute all tests on my linux box, we need to make it faster - let's say 5 minutes...
The arbitrary limit is hard to work with. With the current proposed changes, we see about 30% performance improvement. Those need to be made available for final review.
Current major time users for postgresql install;
25% pg_query_params. So waiting on the database.
15% create_course(). Some overlaps with database, but a lot of time in creating courses.
8% core\event\base::trigger. Trigger overhead is high. Much of this is around cache construction for purge_by_event. It's very slow that infrastructure.
The only optimisation that has not been at least trialled is adding a default course to the initialisation database so that it's there for all test cases that want a basic course. It is likely best to adjust the data_generator to use it as most users wouldn't ever both to call a different function to create a basic course.
There are unlogged issues that will be elaborated on during the day. See the following work in progress branch. https://github.com/mr-russ/moodle/tree/fastphpunit
- will be (partly) resolved by
-
MDL-51584 Regrading a large course hits the cache so many times that it slows down processing
- Closed
-
MDL-49149 Speed up phpunit executions using memory store instance for faster caches reset
- Reopened
-
MDL-55609 Assignment test rewrite
- Closed
-
MDL-45584 Can't instantiate multiple caches of same definition with different identifiers
- Closed
-
MDL-55922 Improve static store performance in line with static acceleration changes
- Closed
-
MDL-55944 Reduce sleeps as much as possible in unit tests
- Closed