问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

让PHP网站跑的更快 如何优化PHP

发布网友 发布时间:2022-04-23 00:39

我来回答

2个回答

热心网友 时间:2022-04-06 01:50

  php(做为现在的主流开发语言)是一种执行起来非常迅速的编程语言,但是比起仅仅优化代码来说仍然值得优化php(做为现在的主流开发语言)本身。

  本文我们将根据一些实效阐述为什么优化php(做为现在的主流开发语言)本身要比优化代码来的更贴切,以及为什么需要理解根据php(做为现在的主流开发语言)在你的服务器上其他相关子系统的表现找出瓶颈并修复之。与此同时,我们也提到了如何优化您的php(做为现在的主流开发语言)代码来让他们拥有更快的执行速度。

  获得高性能

  当我们谈及好的性能,往往不仅仅是指您的php(做为现在的主流开发语言)代码执行起来有多快。性能是一套在可量化评测和速度之间取出的平衡。仅仅依靠使用更少资源的代码执行起来也许比在高速缓存中之行的代码更慢,并且相同的一组(在高速缓冲中执行的)代码可以在同时并发执行在一台Web服务器上。

  在下面的例子中,A.php(做为现在的主流开发语言)算作一位尽可能跑得快的赛跑选手,而B.php(做为现在的主流开发语言)是一个几乎可以以同一慢速永远跑下去的马拉松选手。轻负荷情况下,A.php(做为现在的主流开发语言)可以充分的快,但是当流量增加后,B.php(做为现在的主流开发语言)的性能表现将仅仅降低一点点而A.php(做为现在的主流开发语言)会垮掉。

  让我们来通过一个事实来验证此说法更深远的本质意义。假设我们需要读取一个250K的文件并生成一个关于此文件的HTML概要。我们写了两个脚本来做同样一件事:hare.php(做为现在的主流开发语言)将一次性读取整个文件到内存中,然后一步执行到位;而tortoise.php(做为现在的主流开发语言)每次只读取文件的一行,并且决不超过内容容量。结果Tortoise.php(做为现在的主流开发语言)因为多次读写需要更多的系统回应而慢得多。"

  程序每执行一次,hare.php(做为现在的主流开发语言)需要0.04秒CPU执行时间和10Mb的内存,而tortoise.php(做为现在的主流开发语言)需要0.06秒CPU执行时间和5Mb的内存。服务器共有100Mb实际内存容量并且其CPU有99%是空闲的。我们同时假定执行这样一个简单事件不产生内存碎片。

  当有10各程序并发执行时,hare.php(做为现在的主流开发语言)将发生内存溢出(10 ×10 = 100)。与此同时,tortoise.php(做为现在的主流开发语言)仍将有50Mb空余内存可用!11个程序并发执行将使hare.php(做为现在的主流开发语言)彻底“溃败”因为它开始需要使用虚拟内存——执行速度有可能降低到其常规速度的一半以下;而且现在每一个单独程序进程需要0.08秒CPU执行时间。而此期间,tortoise.php(做为现在的主流开发语言)仍旧运行在其常规CPU执行时间——0.06秒!

  以下表格中,执行得更快的php(做为现在的主流开发语言)脚本使用粗体区分开来:

  ------------------------------------------------------------------------------------------

  | 连接数 | 每执行1次HTTP请求所需CPU执行时间(秒)| 每执行10次HTTP请求所需CPU执行时间(秒)| 每执行11次HTTP请求所需CPU执行时间(秒)|

  ------------------------------------------------------------------------------------------

  | hare.php(做为现在的主流开发语言) | 0.04 | 0.04 | 0.88(内存溢出) |

  ------------------------------------------------------------------------------------------

  | tortoise.php(做为现在的主流开发语言) | 0.06 | 0.60 | 0.66 |

  ------------------------------------------------------------------------------------------

  如您在上例中看到的,获得更好的性能不再仅仅是写出执行起来更快的php(做为现在的主流开发语言)程序。高性能php(做为现在的主流开发语言)表现需要对底层硬件知识以及操作系统、软件支持如Web服务器、数据库等有一个良好认识和理解。

  瓶颈

  以上两个例子让我们看到了(性能)下降的瓶颈所在。当拥有无限大容量的内存时,hare.php(做为现在的主流开发语言)的确是始终比tortoise.php(做为现在的主流开发语言)快。但是,仅仅认为内存是php(做为现在的主流开发语言)整体性能的瓶颈所在显得过于单纯——实际上远不止这些:

  (a) 网络

  你的网络有可能是最大的瓶颈所在。如果你有10M的带宽——最多你只能获得1M/秒的传输速度。如果假设每个php(做为现在的主流开发语言)页为30k,那么每秒仅仅只传输33页就将使你的网络带宽达到饱和。更多导致瓶颈产生的因素包括频繁访问低速DNS,或者网络设备仅能获得十分有限的存储。

  (b) CPU

  如果你监视一下你的CPU负荷情况,发送一个纯静态HTML页面并不会增加CPU负担——就像我们以上提到的,此时瓶颈在于网络。当然啦,对于由php(做为现在的主流开发语言)生成的复杂动态页面,你的CPU速度自然将成为*因素之一。拥有包含多个CPU的服务器或者一个服务器阵列将减轻因CPU带来的影响。

热心网友 时间:2022-04-06 03:08

这里可以看,man87~( 0M
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? php最快的学习方法 php 开发 比 java 快 在哪 php为啥比python快 PHP如何加速到最快 物理知识点初中 《只狼》有手机版吗? 河南省etc怎么办理?需要什么证件? 为什么在手机版里面有些功能是没有的呢? 百度知道有手机版吗? 南宁玉洞那里有办理ETC? 求一首李白的五言或七言绝句及其赏析,不要情诗,囧 手机的版本类型,比如港版、美版、中国大陆版有什么区别 有手机版的photoshop吗? 广西南宁建设银行办理ETC需要办新的信用卡吗?可以绑定已有信用卡吗? 在广西南宁办了ETC速通卡没有用怎么退? 南宁etc办理哪里最便宜? 有手机版的吗? 南宁etc办理需要什么证件 手机版有跟会声会影一样的软件有吗? 南宁市有那个地方可以办etc卡? 怎么快速学会php建站 PHP怎么学比较快一点? PHP最快多久可以学好? 直接打开PHP文件快还是采用JS调用打开文件会快些呢? PHP为什么会成为全球最流行的语言?php学习如何快速上手? 学PHP最快要多久?学习路线?要不要报培训班 请问php学起来快吗?需要什么语言基础吗? 怎样烧红烧五花肉,可以让肉更软糯? php那种方法读写文件最快? 五花红烧肉的做法步骤图,五花红烧肉怎么做 红烧肉片怎么做呢? 红烧肉怎么做?冫 自己在家怎么做红烧肉? 做红烧肉的做法, 怎么做家常红烧肉,蒸红烧肉的家常做法 红烧肉怎么做能入口即化呢? 等额本息提前还款后面利息会减少吗? 红烧肉做法! 等额本息提前部分还款技巧? 红烧肉咋做?