首页 » 网站建设 » php7技巧_MISS带你理解 高机能PHP7

php7技巧_MISS带你理解 高机能PHP7

访客 2024-10-23 0

扫一扫用手机浏览

文章目录 [+]

前篇文章已经先容了PHP7的新特性,本章来分享一些新的东西:

PHP7运用性能提升

本节谈论一下性能优化技能:

php7技巧_MISS带你理解 高机能PHP7

Nginx与Apache:

php7技巧_MISS带你理解 高机能PHP7
(图片来自网络侵删)

Apache是利用最为广泛的一款HTTP server软件,它足够灵巧、广泛支持、能力强化,以模块办法集成大多数措辞的优点。
Apache实在进程内部解析大多数脚本措辞的,以是没有软件通信间的开销。
Apache处理要求的模式有三种:prefork(线程创建进程),worker(进程创建线程),韶光驱动模式,因此供应更高灵巧度。
因此,每一个要求都会由一个进程或者线程处理,以是处理要求时,开销很大,在高并发场景下,其性能低下的问题便会凸显出来。

Nginx是为办理高并发场景下的低性能而生,供应了异步、事宜驱动、非壅塞要求处理。
由于要求异步处理,NGINX不必等待每个要求完成,避免锁住资源。
它创建许多事情进程,每个事情进程可以处理数千个链接,因此可以利用很少的进程来承载高并发流量。
常日我们认为NGINX快于Apache,但在一些场景下,例如(静态资源)Apache也有自己的上风,在构建高性能做事器时,PHP才是真正的瓶颈。

内容分发网络(CDN)

常日做事于媒文件体,例如图片,css,js文件和音频视频。
这些文件会被缓存在各地的做事器上,这些做事器在地域上足够分散。
当收到要求时,CDN网络会选择最得当用户的最近节点,将内容下发给用户。

CDN 的特性如下:

CDN讲内容缓存在内存中。
当某个文件的要求到达时,CDN直接从缓存中发送文件,这比从磁盘中加载文件并将其发送到浏览器更快。

CDN做事器位于不同的位置,当浏览器要求到达CDN时,CDN从所要求位置可用的最近位置发送要求内容。
以此减少相应韶光。

每个浏览器都具有向域发送同时要求的限定,大多数情形下,有三种办法,当相应到达要求时,浏览器向同一个域发送多个要求,这会导致页面加载延迟。
CDN利用主域的DNS设置供应子域,是浏览器能够为从不同域加载的相同内容发送更多并行要求,这也使得浏览器能够快速加载页面的内容。

如果运用程序的静态内容托管在单独的CDN做事器上,这将大大减少做事器的负载。

CSS与JavaScript的优化

合并:分别将CSS文件合并成一个文件,JavaScript合并成一个文件。

缩小:删除所有空行、注释和额外空格,这种缩小尺寸的方法有助于快速装载,并且将该文件将花费更少的带宽,大多数开源运用程序:magento、drupal、WordPress,对缩小文件供应了支持。

Minify:完备利用PHP编写的库,可以嵌入任何盛行或自主研发的框架中。

主页地址:minifier。
org

提升数据库性能

查询缓存

它缓存了SELECT查询以及结果集数据。
当一个同样的select查询法神石,mysql直接从内存中取出结果。

show variables like 'have_query_cache',若显示为YES则表示开启了,若要开启缓存查询,打开my.cnf文件,设置如下:

query_cache_type=1

query_cache_size=128M(表示将会分配的内存大小)

query_cache_limit=1MB(定义能被缓存的查询结果的最大面积)

存储引擎

Redis

redis是开源的内存性键值存储系统,详细在 随着MISS 初探非关系型数据库产品 redis 一文中已经带大家理解。
它也支持主从复制和事务。

Memcached

Mencached是一个免费、开源、高性能、分布式的C措辞编写的内存工具缓存系统。
属于内存性的键值存储,可以保存从数据库或者API调用获取的数据。
一个高性能的分布式内存工具缓存系统,用于动态Web运用以减轻数据库负载。
它通过在内存中缓存数据和工具来减少读取数据库的次数,从而提高动态、数据库驱动网站的速率。

调试和剖析 (详细不赘述,须要请留言)

Xdebug

sublime text 3

eclipse

xdebug剖析

PHP debugBar

PHP运用的压力、负载测试

Apache JMeter (软件,官网下载运行安装)

ApacheBench (命令行工具)

Siege

标签:

相关文章