小蚂蚁学习PHP性能优化(2)--PHP语言级性能优化

接上篇

3.    优化点:尽可能少的使用魔法函数

情况描述:PHP提供的魔法函数,性能不佳

为什么呢?为了给PHP程序员省事,PHP语言为此做了很多

好的方法:尽可能规避使用PHP魔法函数,需要使用的时候,权衡一下利弊

4.    优化点:产生额外开销的错误抑制符@

情况描述:PHP提供的错误抑制符只是为了方便“懒人”

@符号的实际逻辑:在代码开始前,结束后,增加了opcode,忽略了报错。

好的建议:建议尽量不要使用@错误抑制符

5.    优化点:合理使用内存

情况描述:PHP有内存回收机制保底,但也请小心使用内存。

好的建议:利用unset()即使释放不使用的内存。(注意:unset会出现注销不掉的情况)

6.    优化点:尽量少的使用正则表达式

情况描述:正则表达式的回溯开销较大,如果正则表达式的基础不好,还是慎用。

好的建议:利用字符串处理函数,实现相同的逻辑。

7.    优化点:避免在循环内做运算

情况描述:循环内的计算式将会被重复计算。

代码示例:

//错误的做法,每次循环都要计算一下$str的长度
$str    =    ‘hello world‘;
for($i=0;$i<strlen($str);$i++){
    //这里是逻辑
}
//正确的做法,只需计算一次长度即可
$str    =    ‘hello world‘;
$len    =    strlen($str);
for($i=0;$i<$len;$i++){
    //这里是逻辑
}

8.    优化点:减少计算密集型业务

情况描述:PHP不适合密集型运算的场景。PHP特性决定了PHP不适合做大数据量运算。

PHP适用场景,适合衔接webserver与后端服务,UI呈现。

9.    优化点:务必使用带引号的字符串作为键值

情况描述:PHP会将没有引号的键值当做常量来处理,产生查找常量的开销。

好的建议:严格使用引号键值。

时间: 2024-11-06 06:46:17

小蚂蚁学习PHP性能优化(2)--PHP语言级性能优化的相关文章

php 性能优化之php 语言级的性能优化一

对于这个问题首先我们要知道影响php的性能的原因是什么?也就是 1 什么情况下会出现php性能问题? 1php语法使用不当(包括某些业务可以使用php 本身自带的函数来处理) 2使用php语言做了它不擅长的事 3用php语言链接的服务器不给力(当然如果是localhost也就是你本地配置比较差哈,建议换本吧,哈哈) 4php自身的短板 (PHP 自身就做不了) 5我们也不知道的问题 (囧)   2 php 性能问题简介之php的性能问题的解决方向 从困难度由浅到深分别为: 1 Php 语言级的性

PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

使用ab进行压力测试 ab -n行数 -c并发数 url 重点关注下面两点: 1.Request per secend : 每秒可接收的请求数 2.Time per request : 每次请求所耗费的时间 优化1.多使用PHP自身的功能(如PHP定义的函数.常量),尽量少自己造轮子,自己写的代码冗余较多,可读性不高,且性能低下 PHP每次接受请求后,都会进行编译成底层语言,C->汇编->机器语言,同时接受大量请求,每个请求都会执行一次编译 示例代码如下: bad.php          

SQL数据库数据优化SQL优化总结( 百万级数据库优化方案)

网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 这篇文章我花费了大量的时间查找资料.修改.排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到.纠正以及补充. 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id f

SQLSerVer优化大总结-百万级数据库优化

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注.描述.评论之类的可以设置为 NULL,其他的,最好不要使用NULL. 不要以为 NULL 不需要空间,比如:char(100) 

小蚂蚁学习PHP性能优化(1)

因为sphinx还没有找到比较合适的材料,今天开始学习一下PHP性能优化.记得很久之前做过这么一个功能,就是计算一级人脉下的所有推荐人的资金和,以及每个推荐人的推荐人的资金和,就形成了一个人脉树,当时的做法就是用了递归的方法来计算,其中不停的查询数据库,资源消耗相当的大,当一个人下面的直接推荐人和间接推荐人达到一二百个的时候,那就无法运行下去,这确实让人头疼了很久.今天开始学习一下高手讲解的PHP就很有必要. PHP的性能问题的解决方法 PHP语言级的性能优化 PHP周边问题的性能优化 PHP语

百万级数据库优化方案数据库SQL优化大总结

一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注.描述.评论之类的可以设置为 NULL,其他的,最好不要使用NULL. 不要以为 NULL 不需要空间,

C++应用程序性能优化(三)——C++语言特性性能分析

C++应用程序性能优化(三)--C++语言特性性能分析 一.C++语言特性性能分析简介 通常大多数开发人员认为,汇编语言和C语言比较适合编写对性能要求非常高的程序,C++语言主要适用于编写复杂度非常高但性能要求并不是很高的程序.因为大多数开发人员认为,C++语言设计时因为考虑到支持多种编程模式(如面向对象编程和范型编程)以及异常处理等,从而引入了太多新的语言特性.新的语言特性往往使得C++编译器在编译程序时插入了很多额外的代码,会导致最终生成的二进制代码体积膨胀,而且执行速度下降.但事实并非如此

数据库SQL审计、SQL优化、异常问题诊断、性能优化

数据库管理系统(简称 DBMS)无疑是任何数据密集型应用程序当中最为重要的组成部分,其肩负着处理大量数据以及高复杂性工作负载的重任.然而,数据库管理系统本身却往往难于管理,因为其中通常包含数百种配置"旋钮",用于控制诸如缓存内存分配量以及存储介质数据写入频率等要素.各类企业一般需要聘请专业人士以协助相关调配工作,但对于大多数企业而言,此类专业人才的开价亦相当高昂.而实际上,DBA所面临的挑战还远不止这些. 而今天一则名为"OtterTune"的机器学习DBMS系统刷

算法的优化(C语言描述)

算法的优化 算法的优化分为全局优化和局部优化两个层次.全局优化也称为结构优化,主要是从基本控制结构优化.算法.数据结构的选择上考虑:局部优化即为代码优化,包括使用尽量小的数据类型.优化表达式.优化赋值语句.优化函数参数.全局变量及宏的使用等内容. 一.全局优化 1.优化算法设计 例如,在排序中用快速排序或者堆排序代替插入排序或冒泡排序:用较快的折半查找代替顺序查找法等,都可以极大地提高程序的执行效率. 2.优化数据结构 例如在一堆随机存放的数中使用了大量的插入和删除指令,那么使用链表要快得多.数