PHP语言之PHP性能优化(1)
小标 2018-11-27 来源 : 阅读 1617 评论 0

摘要:本文主要向大家介绍了PHP语言之PHP性能优化(1),通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言之PHP性能优化(1),通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

PHP 本身已经是一种非常快速的语言,不过除了执行速度,PHP仍然有许多可以被优化的地方。

       在本文中我们将介绍一下几点:

1.         为什么PHP中优化的有许多因素是和代码没有关系的

2.         在提升PHP性能的过程中,为什么我们还需要了解更多的关于其它方面的知识

3.         这些子系统导致瓶颈的原因以及解决的方法

4.         我们还讨论如何调整以及优化PHP代码使其拥有更佳的性能

达到高性能

       当我们谈论高性能时,我们并不仅仅指一个PHP脚本运行的有多么快速,性能是指速度和可伸缩性的折中权衡。使用较少资源的脚本因该会比另一个使用了缓存的脚本要慢,但是在web服务器中,某一时刻可能运行同一个脚本的多个拷贝。

       在下面的例子中,我们假设脚本a.php是一位跑得十分快速赛跑选手,而b.php是一位马拉松长跑健将,他的速度是基本不变的。在负载较轻时,a.php 运行的要比b.php快,然而随着web服务器的负载不断增加,b.php的性能只是降低了一些,而a.php却大势已去!

       

    现在我们以一个现实中的例子来解释上面发生的情况。我们要写一个PHP脚本,它从一个250k的文件中读取数据,并且生成一个HTML文件。为了便于比较,我们写了两个实现同样功能脚本:“hare.php” 将文件一次性读入内存,并且一次性处理所有的数据;“tortoise.php” 一次只从文件中读取一行,并且决不在内存中保留多于一行的信息。结果是tortoise.php因为使用了更多的系统调用而明显的慢与hare.php。

       脚本hare.php要求有0.04秒的CPU时间和10M的内存,tortoise.php要求有0.05秒的CPU是时间和5M的内存。此时Web服务器有100M的物理内存,和99%的空闲CPU。为了简化问题,我们不考虑内存碎片的情况。

       当有10个脚本被同时运行时,hare.php将会占用掉所有的内存(10M×10=100M),而tortoise.php则可以剩下50M的空闲内存。如果第11个脚本要在服务器中运行,hare.php将不得不使用虚拟内存,这可能导致其速度降低一半,这时所有对hare.php的请求都将使用0.88秒的CPU时间,与此同时,tortoise.php将仍然使用0.06秒的CPU时间。

       下表中较快的PHP脚本使用了粗体以示区别:

                                               

                                                                                                                                                        

            

连接数 

            

 

            
            

1HTTP连接时的CPU时间

            
            

10HTTP连接时的CPU时间

            
            

11HTTP连接时的CPU时间

            
            

hare.php

            
            

0.04 

            

 

            
            

0.40 

            

 

            
            

0.88
(
使用了虚拟内存

            
            

tortoise.php

            
            

0.06 

            
            

0.06

            
            

0.66 

            

 

上面的例子说明:提供好的性能并不是仅仅指编写一个快速的PHP脚本。实现高性能的PHP还要求对底层硬件、操作系统、以及常用的配套软件像web服务器和数据库系统都有良好的认识。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved