6

我有一个php 5.4/mysql网站,每天有 500 万次点击,运行在带有nginxphp-fpm. 数据库位于单独的服务器上。

我注意到,在高峰时间,我的网络服务器负载高达 15,而不是四核处理器的正常 4。我已经使用xdebugxhprof分析了我的 php 应用程序,并看到90% 的 CPU 工作是由htmlspecialchars()Twig我用来显示数据的模板中的函数完成的。有时htmlspecialchars()每页有 100 到 1000 个调用。我试图减少不必要的转义,但仍然无法避免。

有什么办法可以按htmlspecialchars()功能减少 CPU 使用率?也许为此在php中有某种缓存?或者还有其他方法吗?

4

1 回答 1

1

不要使用树枝。只需将 php-files 与此代码一起使用:

<?php
// Load a php-file and use it as a template
function template($tpl_file, $vars=array()) {
    $dir='/usr/local/app/view/'.$tpl_file.'.php';
    if(file_exists($dir)){
        // Make variables from the array easily accessible in the view
        extract($vars);
        // Start collecting output in a buffer
        ob_start();
        require($dir);
        // Get the contents of the buffer
        $applied_template = ob_get_contents();
        // Flush the buffer
        ob_end_clean();
        return $applied_template;
    }
}
于 2013-05-04T16:39:40.003 回答