提升PHP性能的21种方法介绍
1.用单引号来包含字符串要比双引号来包含字符串更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。
2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
3.$row['id'] 的速度是$row[id]的7倍。
4.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
5.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
6.注销那些不用的变量尤其是大数组,以便释放内存。
7.尽量避免使用__get,__set,__autoload。
8.require_once()代价昂贵。
9.include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。
10.如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME']要好于time()。
11.函数代替正则表达式完成相同功能。
12.str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
13.如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。
14.使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。
15.用@屏蔽错误消息的做法非常低效,极其低效。
16.打开apache的mod_deflate模块,可以提高网页的浏览速度。
17.数据库连接当使用完毕时应关掉,不要用长连接。
18.错误消息代价昂贵。
19.在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。
20.递增一个全局变量要比递增一个局部变量慢2倍。
21.递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。
相关推荐
-
通过缓存数据库结果提高PHP性能的原理介绍
但当您使用的数据库与 Web 服务器位于不同的计算机上时,缓存数据库结果集通常是一个不错的方法.不过,根据您的情况确定最佳的缓存策略却是一个难题.例如,对于使用最新数据库结果集比较重要的应用程序而言,时间触发的缓存方法(缓存系统常用的方法,它假设每次到达失效时间戳记时就重新生成缓存)可能并不是一个令人满意的解决方案.这种情况下,您需要采用一种机制,每当应用程序需要缓存的数据库数据发生更改时,该机制将通知该应用程序,以便该应用程序将缓存的过期数据与数据库保持一致.这种情况下使用"数据库更改通知&q
-
有关PHP性能优化的介绍
PHP优化对于PHP的优化主要是对php.ini中的相关主要参数进行合理调整和设置,以下我们就来看看php.ini中的一些对性能影响较大的参数应该如何设置. # vi /etc/php.ini(1) PHP函数禁用找到:disable_functions =该选项可以设置哪些PHP函数是禁止使用的,PHP中有一些函数的风险性还是相当大的,可以直接执行一些系统级脚本命令,如果允许这些函数执行,当PHP程序出现漏洞时,损失是非常严重的!以下我们给出推荐的禁用函数设置:disable_function
-
优化php效率,提高php性能的一些方法
1.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题: 2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的: 3.优化Select SQL语句,在可能的情况下尽量少的进行Insert.Update操作(在update上,我被恶批过): 4.尽可能的使用PHP内部函数(但是我却为了找个
-
PHP性能优化 产生高度优化代码
1.将PHP升级到最新版 提高性能的最简单的方式是不断升级.更新PHP版本. 2.使用分析器 网站运行缓慢的原因颇多,Web应用程序极其复杂,让人扑朔迷离.而一种可能性在于PHP代码本身.这个分析器可以帮助你快速找出造成瓶颈的代码,提高网站运行的总体性能. Xdebug PHP extension提供了强大的功能,可以用来调试,也可以用来分析代码.方便开发人员直接跟踪脚本的执行,实时查看综合数据.还可以将这个数据导入到可视化的工具 KCachegrind中. 3.检错报告 PHP支持强大的检错功
-
提高PHP编程效率的53个要点(经验小结)
用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号). 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号
-
提升PHP性能的21种方法介绍
1.用单引号来包含字符串要比双引号来包含字符串更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会.2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.3.$row['id'] 的速度是$row[id]的7倍.4.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2.5.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替.
-
详解PostgreSQL提升批量数据导入性能的n种方法
关键字:批量数据导入,数据加载,大量插入,加快,提升速度 多元化选择时代,人生里很多事物都是如此,凡事都没有一成不变的方式和方法.不管白猫黑猫,能抓老鼠的就是好猫,适合自己的就是最好的. 提升批量数据导入的方法亦是如此,没有何种方法是最优的,应用任何方法前根据自己的实际情况权衡利弊,做出选择. 批量导入数据之前,无论采取何种方式,务必做好相应的备份. 导入完成后亦需对相应对象进行ANALYZE操作,这样查询优化器才会按照最新的统计信息生成正确的执行计划. 下面正式介绍提升批量数据导入性能的n种方
-
python字符串过滤性能比较5种方法
python字符串过滤性能比较5种方法比较 总共比较5种方法.直接看代码: import random import time import os import string base = string.digits+string.punctuation total = 100000 def loop(ss): """循环""" rt = '' for c in ss: if c in '0123456789': rt = rt + c retu
-
Java编程求二叉树的镜像两种方法介绍
给出一棵二叉树,求它的镜像,如下图:右边是二叉树是左边二叉树的镜像. 仔细分析这两棵树的特点,看看能不能总结出求镜像的步骤.这两棵树的根节点相同,但他们的左右两个子节点交换了位置.因此我们不妨先在树中交换根节点的两个子节点,就得到了下面一幅图中的第二颗树 解法1(递归) 思路1:如果当前节点为空,返回,否则交换该节点的左右节点,递归的对其左右节点进行交换处理. /*class TreeNode{ int val; TreeNode left=null; TreeNode right=null;
-
Java中获取键盘输入值的三种方法介绍
程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 public static void main(String [] args) throws IOException{ System.out.print("Enter a char
-
java中List分页的几种方法介绍
目录 1.根据入参带分页参数进行sql查询分页 2.对所有list根据分页参数分页 3.PageHelper分页 1.根据入参带分页参数进行sql查询分页 Criteria criteria = new Criteria(); //将dataAuto转成 factoryId brandId seriesId 等查询条件 String dataAuth = ""; TypeCaseHelper.dataAuto(criteria, dataAuth); // 设置分页信息 ExtPage
-
Android 拍照后返回缩略图的两种方法介绍
目录 前言: 一.这就是第一种方法,比较简单,不用将图片保存到手机本地存储下来. 二.第二种方法 总结 前言: 如果简单地拍照片并非您应用的主要目标,那么您可能希望从相机应用中获取图片并对该图片执行一些操作. 一.这就是第一种方法,比较简单,不用将图片保存到手机本地存储下来. 下面我们看具体代码: 1.首先是布局文件activity_photothumbnail.xml <?xml version="1.0" encoding="utf-8"?> <
-
C#下解析HTML的两种方法介绍
在搜索引擎的开发中,我们需要对Html进行解析.本文介绍C#解析HTML的两种方法.AD: 在搜索引擎的开发中,我们需要对网页的Html内容进行检索,难免的就需要对Html进行解析.拆分每一个节点并且获取节点间的内容.此文介绍两种C#解析Html的方法. C#解析Html的第一种方法:用System.Net.WebClient下载Web Page存到本地文件或者String中,用正则表达式来分析.这个方法可以用在Web Crawler等需要分析很多Web Page的应用中.估计这也是大家最直接,
-
JS实现深拷贝的几种方法介绍
引 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力. 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这些概念能更好的让你理解深拷贝与浅拷贝. 我们来举个浅拷贝例子: let a=[0,1,2,3,4], b=a; console.log(a===b); a[0]=1; console.log(a,b); 嗯?明明b复制了a,为啥修改数组a,数组b也跟着变了,这里
-
Android通过LIstView显示文件列表的两种方法介绍
在Android中通过ListView显示SD卡中的文件列表一共有两种方法,一是:通过继承ListActivity显示;二是:利用BaseAdapter显示.BaseAdapter是一个公共基类适配器,用于对ListView和Spinner等 一些控件提供显示数据.下面是利用BaseAdapter类来实现通过LIstView显示SD卡的步骤: 1.main.xml界面设计,如下图 复制代码 代码如下: <?xml version="1.0" encoding="utf-
随机推荐
- SQL中代替Like语句的另一种写法
- Java使用poi将word转换为html
- Java依赖-关联-聚合-组合之间区别_动力节点Java学院整理
- c++ 一个二进制串转化为整数的解决方法
- phpwind中的数据库操作类
- python3中int(整型)的使用教程
- RxJava2配置及使用详解
- 详解VUE的状态控制与延时加载刷新
- datePicker——日期选择控件(with jquery)
- javascript基础的动画教程,直观易懂
- JavaScript & jQuery完美判断图片是否加载完毕
- 深入理解JavaScript中的传值与传引用
- Java AOP知识详细介绍
- C#基础之异步调用实例教程
- bootstrap实现二级下拉菜单效果
- Vue组件化开发思考
- jQuery操作attr、prop、val()/text()/html()、class属性
- java中的控制结构(if,循环)详解
- python中时间转换datetime和pd.to_datetime详析
- Nodejs 识别图片类型的方法