我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHP7性能优化如何提升

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHP7性能优化如何提升

这篇文章主要介绍“PHP7性能优化如何提升”,在日常操作中,相信很多人在PHP7性能优化如何提升问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP7性能优化如何提升”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下.

PHP7性能优化如何提升

Opcache

记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:

zend_extension=opcache.soopcache.enable=1opcache.enable_cli=1"

使用新的编译器

使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升(Wordpres的QPS角度衡量)

其实GCC 4.8以前的版本也支持, 但是我们发现它支持的有Bug, 所以必须是4.8以上的版本才会开启这个特性.

HugePage

我之前的文章也介绍过: 让你的PHP7更快之Hugepage , 首先在系统中开启HugePages, 然后开启Opcache的huge_code_pages.

以我的CentOS 6.5为例, 通过:

$sudo sysctl vm.nr_hugepages=512

分配512个预留的大页内存:

$ cat /proc/meminfo | grep HugeAnonHugePages: 106496 kBHugePages_Total: 512HugePages_Free: 504HugePages_Rsvd: 27HugePages_Surp: 0Hugepagesize: 2048 kB

然后在php.ini中加入:

代码如下:

 opcache.huge_code_pages=1

这样一来, PHP会把自身的text段, 以及内存分配中的huge都采用大内存页来保存, 减少TLB miss, 从而提高性能.

Opcache file cache

开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.
在php.ini中加入:

代码如下:

opcache.file_cache=/tmp

这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.

PGO

我之前的文章: 让你的PHP7更快(GCC PGO) 也介绍过, 如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.

具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:

代码如下:

$ make prof-gen

然后用你的项目训练PHP, 比如对于Wordpress:

代码如下:

$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null

也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息.

最后:

$ make prof-clean$ make prof-use && make install

到此,关于“PHP7性能优化如何提升”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHP7性能优化如何提升

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP7性能优化如何提升

这篇文章主要介绍“PHP7性能优化如何提升”,在日常操作中,相信很多人在PHP7性能优化如何提升问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP7性能优化如何提升”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-21

Golang 技术性能优化中如何提升并发性能?

如何提升 go 应用程序的并发性能?使用 goroutine 池:减少 goroutine 创建和销毁开销。利用 channel 进行通信:高效共享数据,减少锁竞争。同步访问共享数据:使用 mutex 保护共享数据,避免数据损坏。注意内存分
Golang 技术性能优化中如何提升并发性能?
2024-05-12

性能提升了200%!(优化篇)

由于这个数据校对系统最初不是我开发的,我了解了下数据校对系统的业务,整体来说,数据校对系统的业务还是比较简单的。用户通过商城提交订单后,会在订单微服务中生成订单信息,保存在订单数据库中。

如何实现 Java 服务性能优化,提升 QPS

前段时间我们的服务遇到了性能瓶颈,由于前期需求太急没有注意这方面的优化,到了要还技术债的时候就非常痛苦了。
Java优化QPS2024-12-02

如何优化Ruby循环结构以提升性能?

在编写Ruby循环结构时,我们需要注意避免性能瓶颈。以下是一些建议:使用适当的数据结构:选择最适合您需求的数组或哈希表来存储数据。例如,如果您需要频繁地查找和插入元素,那么使用哈希表可能是更好的选择。减少不必要的计算:在
如何优化Ruby循环结构以提升性能?
ruby2024-12-15

UITableView性能提升和优化(第

接上一篇翻译的内容。再次运行测试在重用cell之后,你可以再一次测试滚动性能。从表格3-3可以看出,在你正确重用cell之后,性能提升了一倍。表格 3-3 重用cell之后测试的结果结果显示你的做法是正确的;但是,现在的性能依然不够好。你总
2023-01-31

PHP7有哪些性能优化

这篇文章主要介绍“PHP7有哪些性能优化”,在日常操作中,相信很多人在PHP7有哪些性能优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP7有哪些性能优化”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-17

PHP代码优化与性能提升

php 代码优化是提升 web 开发性能的关键。本文提供了七项实用技术:1. 缓存系统减少数据库开销;2. 使用 php 内置函数提高效率;3. 优化数据库查询速度;4. 选择合适的数据结构;5. 减少函数调用次数;6. 异步编程避免阻塞操
PHP代码优化与性能提升
2024-05-15

掌握游戏性能优化技术,提升游戏流畅度(游戏开发中如何优化性能以提升流畅性?)

掌握游戏性能优化技术,提升游戏流畅度。优化建议包括:减少渲染开销(如减少三角形数量、利用LOD)、优化材质和纹理(如使用适当纹理大小、压缩纹理)、优化几何着色器(如避免过多顶点着色、使用顶点缓存)、管理内存(如减少内存分配、使用内存池)、优化物理引擎(如选择适当引擎、优化刚体数量、使用近似值)以及其他优化技巧(如启用多线程、使用性能分析工具、定期优化)。
掌握游戏性能优化技术,提升游戏流畅度(游戏开发中如何优化性能以提升流畅性?)
2024-04-02

PHP多线程优化技巧:如何提升程序性能

《PHP多线程如何优化性能》教程一、引言在PHP编程中,多线程是一项非常重要的技术。它可以有效地提高程序的运行效率,特别是在处理大量数据或者进行复杂的计算时。然而,如果使用不当,可能会导致程序出现错误,甚至引发安全问题。因此,掌握正确的多线程使用方法是非
PHP多线程优化技巧:如何提升程序性能
PHP2024-12-18

如何优化Ruby哈希操作以提升存储性能

Ruby哈希操作如何优化存储在Ruby中,哈希是用于将数据编码成固定大小块的过程。这种编码方式可以有效地减少存储空间的占用,提高程序运行的效率。然而,如果使用不当,可能会造成数据丢失或者性能下降。因此,了解并掌握Ruby哈希操作的优化技巧是非常重要的。
如何优化Ruby哈希操作以提升存储性能
ruby2024-12-16

如何实现MySQL底层优化:日志系统的优化与性能提升

MySQL是目前最流行的关系型数据库管理系统之一,作为网站及应用程序后端的核心组件,其性能优化显得尤为关键。其中,日志系统是MySQL的重要组成部分,其性能对数据库的整体性能影响极大。因此,本文将深入讨论MySQL日志系统的优化和性能提升。
如何实现MySQL底层优化:日志系统的优化与性能提升
2023-11-08

PHP接口性能优化之HTTP请求优化(如何优化PHP接口中的HTTP请求以提升性能?)

优化PHP接口的HTTP请求可提升性能。本文提供有效策略,包括使用持久化连接、启用连接池、多路复用、压缩请求和响应、优化请求标头、利用HTTP/2、使用CDN、采用异步HTTP客户端、监控和分析请求。此外,还建议减少请求数量、缓存响应、异步处理、优化数据库查询、使用优化框架和中间件。
PHP接口性能优化之HTTP请求优化(如何优化PHP接口中的HTTP请求以提升性能?)
2024-04-02

css如何优化并提高性能

小编给大家分享一下css如何优化并提高性能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法:1、压缩css,减少文件体积;2、使用link引入css文件;3、合理设计CSS布局,注意复用样式,减少渲染上花的时间;4、少用
2023-06-14

VUE Nuxt.js中间件性能优化指南:如何提升你的项目性能

VUE Nuxt.js中间件是实现项目性能的关键,遵循优化指南可显著提高项目性能,本文深入分析了中间件性能的优化策略,并提供详细的演示代码,帮助开发者轻松提升项目性能。
VUE Nuxt.js中间件性能优化指南:如何提升你的项目性能
2024-02-04

五倍性能提升!如何优化 Golang 定时任务调度

本文介绍了作者优化定时任务调度框架的实现。一起来来看看吧。

PHP接口性能优化之HTTP响应头优化(如何优化PHP接口的HTTP响应头以提升性能?)

优化PHP接口的HTTP响应头可显著提升性能。方法包括:启用GZIP压缩使用缓存控制避免不必要的响应头设置适当的ETag使用Vary响应头启用浏览器缓存使用ContentSecurityPolicy(CSP)使用HTTP/2监控和分析应用其他优化技巧(移除空格、注释、减小cookie、使用CDN)
PHP接口性能优化之HTTP响应头优化(如何优化PHP接口的HTTP响应头以提升性能?)
2024-04-02

如何有效提升 java 触发器的性能?(如何优化java触发器的性能)

在Java开发中,触发器是一种重要的数据库对象,它可以在特定的事件发生时自动执行一系列的操作。然而,如果触发器的性能不佳,可能会对整个系统的性能产生负面影响。本文将介绍如何优化Java触发器的性能,以提高系统的响应速度和吞吐量。一、了解触发器的工作原理触发器是一种数据
如何有效提升 java 触发器的性能?(如何优化java触发器的性能)
Java2024-12-23

如何提升 Java update 的性能?(java updata的性能如何提升)

在Java开发中,update操作是常见且重要的一部分。然而,很多开发者在进行Javaupdate时可能会遇到性能问题,这可能会影响到应用程序的整体性能和用户体验。那么,如何提升Javaupdate的性能呢?下面我们将详细介绍一些有效的方法。一
如何提升 Java update 的性能?(java updata的性能如何提升)
Java2024-12-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录