php  性能优化
基础优化
1 不要随便复制变量。
有时候为了使 PHP 代码更加整洁,一些 PHP 新手(包含我)会把提前定义好的变量拷贝到一个名字更简短的变量中,事实上这样做的结果是添加了一倍的内存消耗,仅仅会使程序更加慢。试想一下,在以下的样例中,假设用户恶意插入 512KB 字节的文字到文本输入框中,这样就会导致 1MB 的内存被消耗!
BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];
2. 对字符串使用单引號
PHP 引擎同意使用单引號和双引號来封装字符串变量,可是这个是有非常大的区别的!使用双引號的字符串告诉 PHP 引擎首先去读取字符串内容,查找当中的变量,并改为变量相应的值。一般来说字符串是没有变量的,所以使用双引號会导致性能不佳。最好是使用字符串连接而不是双引號字符串。
BAD:
$output = "This is a plain string";
GOOD:
$output = 'This is a plain string';
BAD:
$type = "mixed";
$output = "This is a $type string";
GOOD:
$type = 'mixed';
$output = 'This is a ' . $type .' string';
3. 使用 echo 函数来输出字符串
使用 echo() 函数来打印结果出了有更easy阅读之外,在下个样例中,你还能够看到有更好的性能。由于print是函数,而echo是php的内置语法
BAD:
print($myVariable);
GOOD:
echo $myVariable;
4. 不要在 echo 中使用连接符
非常多 PHP 程序猿(有包含我)不知道在用 echo 输出多个变量的时候,事实上能够使用逗号来分开的,而不必用字符串先把他们先连起来,如以下的第一个样例中,由于使用了连接符就会有性能问题,由于这样就会须要 PHP 引擎首先把全部的变量连接起来,然后在输出,而在第二个样例中,PHP 引擎就会依照循序输出他们。
BAD:
echo 'Hello, my name is' . $firstName . $lastName . ' and I live in ' . $city;
GOOD:
echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;
5. 使用 switch/case 取代 if/else
对于仅仅有单个变量的推断,使用 switch/case 语句而不是 if/else 语句,会有更好的性能,而且代码更加easy阅读和维护。
6 “用i+=1取代i=i+1。符合c/c++的习惯,效率还高”;
php.ini 參数优化
1 PHP脚本运行时间
max_execution_time = 30
该选项设定PHP程序的最大运行时间,假设一个PHP脚本被请求,且该PHP脚本在max_execution_time时间内没能运行完成,则PHP不再继续运行,直接给client返回超时错误。没有特殊须要该选项可保持默认设置30秒,假设您的PHP脚本确实须要长运行时间则能够适当增大该时间设置。
2 PHP脚本处理内存占用
memory_limit = 128M
该选项指定PHP脚本处理所能占用的最大内存,默觉得128MB,假设您的server内存为1GB以上,则该选项能够设置大一些(只是貌似没什么意义,一条)
3 PHP全局函数声明找到:register_globals = Off
当 register_globals 打开以后,各种变量都被注入代码,比如来自
HTML 表单的请求变量。再加上 PHP 在使用变量之前是无需进行初始化的,这就使得更easy写出不安全的代码。比如 www.test.com/index.php?abc=test 假设打开该设置的话能够直接在php文件里用$abc试用改值
4
高级性能优化
1 php 编译缓存APC
PHP 脚本假设不做缓冲,每次调用都须要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。
php  性能优化的更多相关文章
- C#中那些[举手之劳]的性能优化
隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒...... 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿 ...
- SQL Server SQL性能优化之--通过拆分SQL提高执行效率,以及性能高低背后的原因
复杂SQL拆分优化 拆分SQL是性能优化一种非常有效的方法之一, 具体就是将复杂的SQL按照一定的逻辑逐步分解成简单的SQL,借助临时表,最后执行一个等价的逻辑,已达到高效执行的目的 一直想写一遍通过 ...
- 数据库访问性能优化 Oracle
特别说明: 1. 本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2. 本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...
- JVM内存模型和性能优化 转
JVM内存模型和性能优化 JVM内存模型优点 内置基于内存的并发模型: 多线程机制 同步锁Synchronization 大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于 ...
- Hive性能优化
1.概述 继续<那些年使用Hive踩过的坑>一文中的剩余部分,本篇博客赘述了在工作中总结Hive的常用优化手段和在工作中使用Hive出现的问题.下面开始本篇文章的优化介绍. 2.介绍 首先 ...
- [转] Python 代码性能优化技巧
选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化 ...
- Python代码性能优化技巧
摘要:代码优化能够让程序运行更快,可以提高程序的执行效率等,对于一名软件开发人员来说,如何优化代码,从哪里入手进行优化?这些都是他们十分关心的问题.本文着重讲了如何优化Python代码,看完一定会让你 ...
- 【转】Android性能优化之布局优化篇
转自:http://blog.csdn.net/feiduclear_up/article/details/46670433 Android性能优化之布局优化篇 分类: andorid 开发2015 ...
- Python 代码性能优化技巧(转)
原文:Python 代码性能优化技巧 Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化. ...
随机推荐
- Iron Foundry
Iron Foundry Provided by Tier 3 Iron Foundry is a project initiated by the engineers of Tier 3, an e ...
- 鼠标右键怎么清除Catalyst Control Center
开始→运行→regedit→找到HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\ACE→双击并修改其键值 可以删除 ...
- [Cocos2d-x]节点之间的相互通讯
在做.NET开发时,对象之间的相互通讯一般使用事件(event)实现,事件概念是.NET对Delegate的封装. 在Cocos2d-x开发过程中,对象之间的通讯刚开始时不知道如何实现,于是想到c++ ...
- python语言学习7——数据类型和变量
整数 python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一样 计算机由于使用二进制,有时候采用十六进制表示整数比较方便,十六进制数用0x前缀 浮点数 简单的小数就直接用小 ...
- mysql left join,right join,inner join用法分析
下面是例子分析表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 ...
- VSTO之旅系列(一):VSTO入门
原文:VSTO之旅系列(一):VSTO入门 引言: 因为工作的原因,这段时间一直在看VSTO的相关的内容的,因此希望通过这个系列来记录下我学习的过程和大家分享Office开发的相关知识,希望以后有朋友 ...
- HDU1789Doing Homework again(贪婪)
HDU1789Doing Homework again(贪心) 题目链接 题目大意:给你n们作业的最后期限和过了这个期限没做须要扣的分数.问如何安排能够使得扣分最少. 解题思路:贪心,将扣分多的作业排 ...
- 你不知道的JavaScript上卷笔记
你不知道的JavaScript上卷笔记 前言 You don't know JavaScript是github上一个系列文章 初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目 ...
- 你属于几K(千)?
月薪2k.对出勤率负责:5k,对按时完毕率负责:8k,对质量负责:12k.对小团队的情绪负责:16k,对到款率负责:20k,要想着怎么保住自己的饭碗.40k.保住部门.100k.保住大部门:100k+ ...
- SE 2014年4月1日
一. 描述OSPF报文都有哪些,其作用? OSPF报文主要有:hello报文.DD报文.LSR报文.LSU报文和LSAck报文. Hello报文主要用来建立和维护邻居关系. DD报文是链路状态数据库的 ...