Description of the need

The function menu_navigation_links_rebuild() uses a large number of database queries when rebuilding the system menu links that are created based on hook_menu. This process uses nearly 300 database queries without any contributed modules, and gets more expensive the more modules you have.

Proposed solution

These queries can be statically cached during the process and then all written back to the database at the end. Based on my initial testing, this reduces test execution time by 10-15%

Additional information

I had to modify one test that deletes menu items without using menu_link_delete to simulate a database crash. The behavior in this case is changed because the links are stored using a static cache.

PR: https://github.com/backdrop/backdrop/pull/3659

Advocate: @hosef

GitHub Issue #: 
5389