DEV Community

Discussion on: Teeny, a route system for PHP

 
brcontainer profile image
Guilherme Nascimento

Thanks for commenting. I will test. Two days ago I made a change to the route system that greatly increased performance github.com/inphinit/teeny/blob/mas..., using $slice = array_slice($this->paramRoutes, $indexRoutes, $limit); to get 20 "regex routes" and testing them at the same time (using a single preg_match), all combined with the (?J) to allow groups with the same name and then separate the "callbacks" from those routes and set group names to identify the routes to lessen the work on the "PHP side"

  • Before (version 0.2.6): 1566.68 requests per sec
  • Before (version 0.2.6): Time per request 6.383ms
  • After (version 0.2.7 and 0.2.8): 3995.64 requests per sec
  • After (version 0.2.7 and 0.2.8): Time per request 2.503ms

I still promise that I will test the "Symfony Routing component". Thanks!

Thread Thread
 
hbgl profile image
hbgl

Thanks for pointing it out, Alex. Symfony's compiler is pretty interesting. It compiles all dynamic routes into a regex that resembles a trie.

gist.github.com/hbgl/cfa637dcd9aa3...

To be fair, FastRoute also has another dispatcher implementation that uses an almost identical algorithm.