经常有人问火端,为什么同样的php程序在火端的服务器上运行那么快,而在自己的服务器上运行那么慢?其实影响因素很多,这里说下提升php运行速度的几个方法。
1、服务器使用linux系统
linux系统做服务器在很多方面都比windows优秀,很多地方性能相差很大,如果你的服务器上没有asp、asp.net等程序,强烈建议使用linux系统,centos、ubuntu、debian等系统都是linux内核。不仅linux性能好,而且linux服务器还便宜,特别是国外的服务器,由于windows server是收费的,很多国外win服务器都比linux贵。
虽然linux系统操作起来会比windows复杂许多,但是我们可以查资料学,只要学会了基本的服务器安装使用操作,你一定会爱上linux。后期有时间火端会搞个入门教程,让大家都能轻松用上linux服务器。
2、使用nginx或apache来运行php
很多使用win服务器的站长,都是用iis来跑php,甚至还有人使用iis6来跑,这大大影响了php的发挥,访问量少的情况下可能不太明显,访问量一大就能感觉到区别了。如果你坚持使用win服务器,建议使用nginx或apache来跑php。不会搭建环境,建议使用phpstudy软件一键搭建,可以随意切换nginx、apache、iis以及php版本。
3、开始使用php7
如果你的程序支持php7,强烈建议你使用php7,php7相对php5.x有大大的性能提升,在很多算法上会比后者快两三倍!如果你的程序没法兼容php7,那也尽量升级到php5.6。火端搜索就完美支持php7。
4、使用opcache加速php运行
opcache 通过将 php 脚本预编译的字节码存储到共享内存中来提升 php 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 php 脚本的开销。php 5.5.0 及后续版本中已经绑定了 opcache 扩展。
开启opcache也很简单
1、打开php.ini文件 2、找到:[opcache],设置为:
[opcache] ; dll地址 zend_extension=php_opcache.dll ; 开关打开 opcache.enable=1 ; 开启cli opcache.enable_cli=1 ; 可用内存, 酌情而定, 单位为:mb opcache.memory_consumption=528 ; zend optimizer + 暂存池中字符串的占内存总量.(单位:mb) opcache.interned_strings_buffer=8 ; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值 opcache.max_accelerated_files=10000 ; opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒 opcache.revalidate_freq=1 ; 打开快速关闭, 打开这个在php request shutdown的时候回收内存的速度会提高 opcache.fast_shutdown=1 5、避免频繁操作数据库
大多数网站的瓶颈都是操作数据库这块,很多时候我们并不需要频繁访问数据库,这时候我们可以把数据缓存下来,用redis、memcache或文件缓存都可以。比如火端网络官方网站,大多数页面的数据都是缓存下来的,都是不需要读数据库的。
6、使用ssd硬盘做服务器
固态硬盘只是提升文件读写速度,对php一般的执行影响不大,但如果需要php频繁操作文件,那ssd硬盘就发挥它的作用了。
以上就是php中如何提升程序运行速度的几个优化方案介绍的详细内容。