We have done some benchmark here, and the cost is very low. Better focus on PHP code.
On Mon, Jun 3, 2013 at 9:53 AM, Victor Berchet <victor.berc...@yahoo.com>wrote: > Thomas, > > I think this is due to a bug in Symfony, see > https://github.com/symfony/symfony/issues/6919. > > The second solution checks less files because it does not support template > inheritance. > > Cheers, > Victor > > > On Sunday, June 2, 2013 1:13:01 PM UTC+2, Thomas wrote: > >> Hello, >> >> I have done a few strace on a php-fpm while rendering a standard symfony >> action. The strace shows one interesting thing about how symfony + twig try >> to resolve template location. >> >> From the documentation, http://symfony.com/doc/master/** >> book/templating.html#template-**naming-locations<http://symfony.com/doc/master/book/templating.html#template-naming-locations>, >> the documented way to define a template is to use colon notation. This >> notation generates extra IO and does not seems to use the templates.php >> cache file at first. >> * >> * >> *Template name: @SonataUserBundle:Admin:Security/login.html.twig* >> stat("/vagrant/sandbox/app/**Resources/views/**SonataUserBundle:Admin:**Security/login.html.twig", >> 0x7fffd33c8420) = -1 ENOENT (No such file or directory) >> stat("/vagrant/sandbox/vendor/**symfony/symfony/src/Symfony/** >> Bridge/Twig/Resources/views/**Form/SonataUserBundle:Admin:**Security/login.html.twig", >> 0x7fffd33c8420) = -1 ENOENT (No such file or directory) >> stat("/vagrant/sandbox/vendor/**knplabs/knp-menu/src/Knp/Menu/** >> Resources/views/**SonataUserBundle:Admin:**Security/login.html.twig", >> 0x7fffd33c8420) = -1 ENOENT (No such file or directory) >> access("/vagrant/sandbox/app/**Resources/**ApplicationSonataUserBundle/** >> views/Admin/Security/login.**html.twig", F_OK) = -1 ENOENT (No such file >> or directory) >> access("/vagrant/sandbox/src/**Application/Sonata/UserBundle/** >> Resources/views/Admin/**Security/login.html.twig", F_OK) = -1 ENOENT (No >> such file or directory) >> access("/vagrant/sandbox/app/**Resources/SonataUserBundle/** >> views/Admin/Security/login.**html.twig", F_OK) = -1 ENOENT (No such file >> or directory) >> access("/vagrant/sandbox/**vendor/sonata-project/user-** >> bundle/Sonata/UserBundle/**Resources/views/Admin/**Security/login.html.twig", >> F_OK) = 0 >> >> However, there is another notation (The one use in the Symfony Profile) >> which does not generated extra IO >> >> *Template name: @SonataUser/Admin/Security/login.html.twig* >> stat("/vagrant/sandbox/vendor/**sonata-project/user-bundle/** >> Sonata/UserBundle/Resources/**views/Admin/Security/login.**html.twig", >> {st_mode=S_IFREG|0644, st_size=1564, ...}) = 0 >> stat("/vagrant/sandbox/app/**cache/prod/twig/a8/e6/** >> 51a3ddff7ccaf9e1a0ef99ab2a9f.**php", {st_mode=S_IFREG|0664, >> st_size=4060, ...}) = 0 >> >> I also find another I/O check in the Twig_Loader_Filesystem::**addPath >> (is_dir) method. The check must be done will using twig as a standalone >> component, however the TwigBundle already check path inside the Extension, >> so the Symfony\Bundle\TwigBundle\**Loader\FilesystemLoader should >> overwrite the addPath method. This can save up to 1 I/O check per bundle. >> >> >> Note: The strace have been done on a env ready for production: composer >> dump-autoload -o / apc.stat = Off / warm-cache --env=prod. >> >> -- >> Thomas Rabaix >> thomas...@gmail.com >> >> >> >> >> -- > -- > If you want to report a vulnerability issue on Symfony, please read the > procedure on http://symfony.com/security > > You received this message because you are subscribed to the Google > Groups "symfony developers" group. > To post to this group, send email to symfony-devs@googlegroups.com > To unsubscribe from this group, send email to > symfony-devs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/symfony-devs?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Symfony developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to symfony-devs+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Thomas Rabaix http://rabaix.net | http://sonata-project.org -- -- If you want to report a vulnerability issue on Symfony, please read the procedure on http://symfony.com/security You received this message because you are subscribed to the Google Groups "symfony developers" group. To post to this group, send email to symfony-devs@googlegroups.com To unsubscribe from this group, send email to symfony-devs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-devs?hl=en --- You received this message because you are subscribed to the Google Groups "Symfony developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to symfony-devs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.