在阿帕奇上的个人资料/基准WordPress?

时间:2016-11-30 作者:Toskan

我使用nginx进行了一些评测,发现主题中存在一个瓶颈。

我修复了这个瓶颈,在测试服务器上,页面加载速度很快

http://testword.ironscales.com

在我们的生产站点上,补丁改进了页面加载,但我们仍然非常慢。

我不知道是什么原因造成的。我们使用AWS进行负载平衡。遗憾的是,服务器运行的是apache,而不是nginx。

http://ironscales.com

我有什么办法来找出瓶颈的原因?

我所做的是测量函数的加载时间。php与我的补丁,它是在大约30毫秒。没有补丁功能。php加载大约需要4秒钟。现在速度仍然很慢,我不确定我的下一步选择/步骤是什么来解决这个问题。

也许负载平衡导致某些插件函数超时?

UPDATE 所以我这么做是为了wp-includes/plugin.php (首先备份该文件)

function do_action()...

...
    reset( $wp_filter[ $tag ] );

    do {
        foreach ( (array) current($wp_filter[$tag]) as $the_ )

            if ( !is_null($the_[\'function\']) ){
        $func = $the_[\'function\'];
        if(is_array($func)){
          $t = key($func);
          $func = $func[$t];
        }

        if(isset($t)){

          if(! is_callable([$t, \'__toString\']) && !is_scalar($t)){
            $func = get_class($t);
          }
        }
        if(!is_callable([$func, \'__toString\']) && !is_scalar($func)){
          $func = get_class($func);
        }
       ilog2((string)$func. \' start \');
                call_user_func_array($the_[\'function\'], array_slice($args, 0, (int) $the_[\'accepted_args\']));
       ilog2((string)$func. \' end \');
      }

    } while ( next($wp_filter[$tag]) !== false );

    array_pop($wp_current_filter);
}


function ilog2($m){
  global $isac_start;
  $time_elapsed_secs = 1000 * (microtime(true) - $isac_start);
  file_put_contents(__DIR__. \'/../wp-content/\' . \'debug_filter_log.txt\', $m . "||| ms: " . $time_elapsed_secs . "\\n", FILE_APPEND | LOCK_EX);
}
$isac_start 在我的函数中定义。php组件

global $isac_start;
$isac_start = microtime(true);
我得到的结果,有趣的部分是:

wp_print_styles start ||| ms: 247.50804901123
Jetpack start ||| ms: 247.5528717041
Jetpack end ||| ms: 256.79087638855
print_emoji_styles start ||| ms: 256.88886642456
print_emoji_styles end ||| ms: 256.91390037537
WordPressHTTPS_Module_Core start ||| ms: 256.93488121033
WordPressHTTPS_Module_Core end ||| ms: 258.43501091003
wp_print_styles end ||| ms: 1000.9169578552


wp_print_head_scripts start ||| ms: 1001.072883606
wp_just_in_time_script_localization start ||| ms: 1001.1320114136
wp_just_in_time_script_localization end ||| ms: 1001.1949539185
WordPressHTTPS_Module_Core start ||| ms: 1001.2218952179
WordPressHTTPS_Module_Core end ||| ms: 1003.1979084015
ReduxFramework start ||| ms: 1003.2269954681
ReduxFramework end ||| ms: 1003.6089420319
wp_print_head_scripts end ||| ms: 1384.2549324036



wp_print_footer_scripts start ||| ms: 2234.1909408569
Jetpack start ||| ms: 2234.2219352722
Jetpack end ||| ms: 2235.0518703461
_wp_footer_scripts start ||| ms: 2235.1009845734
_wp_footer_scripts end ||| ms: 3960.3469371796
wp_print_footer_scripts end ||| ms: 3960.4659080505
但我不知道如何从这里继续下去

1 个回复
SO网友:Rarst

不可能仅仅猜测性能问题是什么,它可能根本与web服务器无关。

WordPress的选项包括(范围升序):

PHP runtime profiler/调试代码,用于WP加载的基本计时您应该从PHP运行时开始,以确定您的时间是否在WordPress页面加载中减少。可能会,也可能不会。这取决于您是否需要对PHP进行进一步的故障排除,或者问题实际上是运行它的web服务器。