New in Symfony 3.3: Faster routing
Warning: This post is about an unsupported Symfony version. Some of this information may be out of date. Read the most recent Symfony Docs.
The Symfony Routing component is one of the most critical pieces of any Symfony application. First, because it's used to generate the URLs of links in your templates (that's the "URL generator" part) and second, because it decides which code to execute to respond to any given request (that's the "URL matcher" part).
Moreover, it must be blazing fast to not hurt the application performance.
Instead of checking all the application routes whenever a URL is generated or
matched, the component parses this configuration once and dumps the result as
two big PHP files optimized for URL generating or matching. You can find those
*UrlMatcher.php in the cache of your
Even if those files have been meticulously optimized during the past years, there's always more room for improvements. In Symfony 3.3 we added a lot of micro-optimizations to generate better dump files that result in less function calls during the application execution.
In practice, these changes will be mostly noticed by applications with lots of routes. For example, in a sample application with 900 routes, the URL matching process went from 7.5ms to 2.5ms. In smaller applications, you'll see minor differences, but every millisecond counts when making your applications faster!
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.