PHP性能优化总结

更新日期: 2019-06-28阅读: 2.4k标签: 性能

【1】在循环中判断时,数值判断使用恒等要比等于高效。

 

【2】在数组中,数组下标是字母时一定要加上单引号或双引号。因为$row[‘id‘]的效率是$row[id]的7倍。

 

【3】不要使用“@”去屏蔽错误输出。用@屏蔽错误消息的做法非常低效。若你真的想抑制报错,可以通过设置error_reporting来控制,好比栗子中的,行前设置,行后取消即可。

 

【4】尽量不要在for循环中使用函数,比如for ($x=0; $x < count($array); $x)每循环一次都会调用count()函数。

 

【5】注销那些不必的变量尤其是大数组,以即开释内存。

 

【6】数据库连接该使用完毕时当闭掉。

 

【7】使用挑选分支语句(switch case)佳于使用少个if,else if语句。

 

【8】尽量使用include/require, 而不是include_once/require_once,在《高性能php应用开发》(下载http://pan.baidu.com/share/link?shareid=4170631476&uk=2016712711)一书中有个测试。

代码

<?php
require_once("ClassA.php");
require_once("ClassB.php");
require_once("ClassC.php");
require_once("ClassD.php");

<?php
require("ClassA.php");
require("ClassB.php");
require("ClassC.php");
require("ClassD.php");

echo ‘Only testing require_once...‘;

类ABCD四个文件分别为四个空类,分别放在"ClassA.php","ClassB.php","ClassC.php","ClassD.php"四个文件中:

Class A{
}
Class B{
}
Class C{
}
Class D{
}

试用ab命令模拟10万个请求,同时有5个并发。

ab -c 10 -n 100000 localhost/index.php

结果显示 require_once 响应时间为99毫秒,每秒支持100.63个请求

而require响应时间为94.8毫秒,减少5毫秒,同时并发数增加到105.44个。

参考:再一次, 不要使用(include/require)_once http://www.laruence.com/2012/09/12/2765.html

 

【9】不要重复造车。很多人在重复写着已有的内置function.

现如今的PHP:

- 有2700多个function (现在更多了)
- 80个核心的扩展
- 154个pecl扩展

选择已经存在的用吧,自己搞毛啊!

 

【10】假如在代码中具有大批耗时的函数,最好能够斟酌用C扩大的方法完成它们。

 

【11】str_replace函数比preg_replace函数快,但strtr函数的效力是str_replace函数的四倍。

 

【12】合理运用字符串比较函数:strncmp / strncasecmp 要比 substr 什么的好很多,不管怎样,都比preg_*系列的字符串匹配方法好。

 

【13】使用echo的多重参数取代字符串衔接。即使用逗号而不是点连接字符串。例如:

$name = ‘THOMAS‘;
echo ‘Hello,My name is ‘ . $name; //不推荐
echo ‘Hello,My name is ‘ , $name; //推荐,速度更快


【14】不要引入不需要的文件。每个php脚本文件的引入,都会造成zend编译与执行环节。编译耗时远大于执行的时间。

 

【15】获取时间的方式:请不要一遍遍的调用 time()直接使用 $_SERVER[‘REQUEST_TIME‘]即可得到秒级别的时间戳,不必调用函数

 

【16】 Session 存储。PHP默认是把SESSION存储在一个文件中。把存储session分落在一个目录中,减轻单位间的读写频度。

- 为每个项目设置他们独立的session存储目录
- 利用php.ini的配置 session.save_path=”N;/path”将session存储在多个目录中

 

【17】 Session不采用文件存储。文件存储不是一个优秀的方案

- mm – 固话的共享内存存储
- apc – 用APC存储、获取、删除
- memcache – 基于内存的存储服务

 

【18】系统调用时昂贵的。请手动释放你的资源(Please release resources manually)


链接: https://fly63.com/article/detial/3935

提高js加载速度,实现js无阻塞加载方式,高性能的加载执行JavaScript

为解决JS加载速度慢,采用js的延时加载,和动态加载。由于js的堵塞特性,当浏览器在加载javascript代码时,不能同时做其他任何事情,如果javascript执行时间越久,浏览器等待响应的时间就越久。

如何提高CSS性能?CSS优化、提高性能提升总汇

如何提高CSS性能,根据页面的加载性能和CSS代码性能,主要表现为: 加载性能 (主要是从减少文件体积,减少阻塞加载,提高并发方面入手),选择器性能,渲染性能,可维护性。

前端性能优化_css加载会造成哪些阻塞现象?

css的加载是不会阻塞DOM的解析,但是会阻塞DOM的渲染,会阻塞link后面js语句的执行。这是由于浏览器为了防止html页面的重复渲染而降低性能,所以浏览器只会在加载的时候去解析dom树,然后等在css加载完成之后才进行dom的渲染以及执行后面的js语句。

2018 前端性能检查表

性能十分重要。然而,我们真的知道性能瓶颈具体在哪儿吗?是执行复杂的 JavaScript,下载缓慢的 Web 字体,巨大的图片,还是卡顿的渲染?研究摇树(Tree Shaking),作用域提升(Scope Hoisting)

高性能Javascript总结

Js高性能总结:加载和运行、数据访问、DOM编程、算法和流程控制、响应接口、Ajax 异步JavaScript和XML、编程实践...

优化网站性能规则_前端性能优化策略【网络加载、页面渲染】

前端网站性能优化规则:网络加载类、页面渲染类。包括:减少 HTTP 资源请求次数、减小 HTTP 请求大小、避免页面中空的 href 和 src、合理设置 Etag 和 Last-Modified、使用可缓存的 AJAX、减少 DOM 元素数量和深度等

前端性能的本质是什么?

性能一直以来是前端开发中非常重要的话题。随着前端能做的事情越来越多,浏览器能力被无限放大和利用:从 web 游戏到复杂单页面应用,从 NodeJS 服务到 web VR/AR 和数据可视化,前端工程师总是在突破极限

BigPipe_高性能流水线页面技术

BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行。这是类似于大多数现代微处理器的流水线执行过程:多重指令管线通过不同的处理器执行单元,以达到性能的最佳。

用CSS开启硬件加速来提高网站性能

你知道我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而提升性能吗?现在大多数电脑的显卡都支持硬件加速。鉴于此,我们可以发挥GPU的力量,从而使我们的网站或应用表现的更为流畅。

原生js实现懒加载并节流

像淘宝网站等,页面中有着大量图片,一次性全部加载这些图片会使浏览器发送大量请求和造成浪费。采用懒加载技术,即用户浏览到哪儿,就加载该处的图片。这样节省网络资源、提升用户体验、减少服务器压力。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!