下面是详解 "详解PHP7开启OPcache和Swoole性能的提升对比" 的完整攻略:
简介
在本篇攻略中,我们将通过开启OPcache和Swoole来提升PHP7的性能。OPcache是一个在PHP7中自带的缓存系统,可以将编译后的PHP代码存储在内存中,避免每次都进行编译,从而提高PHP程序的运行效率。Swoole是一个基于PHP开发的异步、高性能、可伸缩的网络通讯框架,可以提供协程、异步IO等功能,从而进一步提高PHP程序的性能。
开启OPcache
检查OPcache是否已启用
在终端中输入下列命令:
$ php -i | grep opcache
如果OPcache已经启用,会看到下面类似的输出:
opcache
opcache.enable => On => On
opcache.enable_cli => Off => Off
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => 1 => 1
opcache.file_cache_only => 0 => 0
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.interned_strings_buffer => 8 => 8
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 10000 => 10000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => Off => Off
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => 1 => 1
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On
如果OPcache未启用,需要在php.ini配置文件中做出修改。
修改php.ini文件
在php.ini文件的末尾添加以下代码:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=7963
opcache.max_wasted_percentage=5
opcache.validate_timestamps=1
opcache.revalidate_freq=0
然后重启Web服务器,OPcache即可生效。
检查OPcache是否生效
我们可以通过命令行执行phpinfo()函数来检查OPcache是否生效。
$ php -r "phpinfo();" | grep opcache
如果看到以下输出,说明OPcache已经生效:
opcache
opcache.enable => On => On
opcache.enable_cli => Off => Off
opcache.enable_file_override => Off => Off
opcache.validate_timestamps => On => On
开启Swoole
安装Swoole扩展
Swoole可以通过PECL或源代码进行安装,这里我们介绍用PECL进行安装的方式。
在命令行执行以下命令:
$ pecl install swoole
安装成功后,在php.ini中添加如下代码:
extension=swoole.so
使用示例
下面是一个简单的Swoole示例,请在命令行中执行:
<?php
$server = new Swoole\HTTP\Server("0.0.0.0", 9501);
$server->on("start", function ($server) {
echo "Swoole http server is started at http://0.0.0.0:9501\n";
});
$server->on("request", function ($request, $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello World\n");
});
$server->start();
这个示例将在本地监听9501端口,并在访问http://127.0.0.1:9501时返回"Hello World"。执行以上示例后,打开浏览器并访问http://127.0.0.1:9501,应该可以看到Hello World。
总结
启用OPcache和Swoole可以大大提高PHP7的性能,对于需要处理大量请求的Web应用程序来说尤其适用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解PHP7开启OPcache和Swoole性能的提升对比 - Python技术站