78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

wordpress极致优化-将WP内核预加载到内存中极速生成页面

自PHP 7.4起,OPCache新增了一个Preload特性,该功能可以将指定的文件预加载到内存中,这样当程序运行时等于是直接从内存到CPU进行运算,省略了磁盘IO的过程。

不过这个特性配置起来会有很多问题,比如说可能导致同一个类或方法被声明多次从而触发致命错误。

具体导致错误的原因以及错误的现象千奇百怪,得见招拆招了,实在没办法整理出一个能让小白看懂的通用教程。所以这里只对WordPress核心进行预加载,这样错误范围相对可控。

在WordPress根目录新建一个preload.php文件,写入如下内容:

<?php
/**
 *这个文件被PHP的Preload功能执行以实现在PHP启动时预加载WordPress内核代码
 */
$directory = new RecursiveDirectoryIterator( __DIR__ );
$fullTree  = new RecursiveIteratorIterator( $directory );
$phpFiles  = new RegexIterator( $fullTree, '/.+((?<!Test)+.php$)/i', RecursiveRegexIterator::GET_MATCH );
foreach ( $phpFiles as $key => $file ) {
       if (
              stristr( $file[0], 'wp-admin/includes' ) ||
              stristr( $file[0], 'wp-content/plugins' ) ||
              stristr( $file[0], 'wp-content/themes' )
       ) {
              continue;
       }
       @opcache_compile_file( $file[0] );
}

之后确保在PHP配置文件中的[Zend Opcache]配置区块的末尾追加如下两行:

opcache.preload=/www/wwwroot/litepress.cn/preload.php;这里是你的preload.php文件的路径,别直接复制……
opcache.preload_user=www

最后重启PHP即可,重启的速度会比较慢,因为要预加载文件。如此配置后大概可以提升50ms左右的首字节速度,当然,在硬盘越差的机器上效果越明显。最后的最后提醒一下:如果WordPress版本更新了要重启PHP服务以重新进行预加载,这样新的文件才会生效。

效果图:

wordpress极致优化-将WP内核预加载到内存中极速生成页面  第1张
页面加载速度明显加快

需要注意的是,只有PHP7.4及以上版本才可以这样操作,在操作过程中,也许会产生如下所示报错,不用管,只有php起来就行。因为预加载不会执行需要动态生成的代码,比如说某些宏需要运行时才确定。<br>其次是代码执行顺序会被打乱,某些代码缺失上下文会弹出警告。这些都不会影响你程序的运行,大可放心。

wordpress极致优化-将WP内核预加载到内存中极速生成页面  第2张
过程中的报错

本文链接:http://78moban.cn/post/14388.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部