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, >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 [email protected] -- -- 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 [email protected] To unsubscribe from this group, send email to [email protected] 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 [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
