PHP性能优化?对于这个问题,我们首先要知道影响PHP的性能的原因是什么?

1.什么情况下会出现PHP性能问题?

  1)PHP语法使用 不当(包括某些业务可以使用PHP本身自带的函数来处理)

  2)使用PHP语言做了它不擅长的事情

  3)用PHP连接数据库或者服务武器不当

  4)PHP自身的短板

2.PHP性能问题简介之PHP的性能问题的解决方向

  从困难由浅入深可分为

  1:PHP语言级的性能优化

  2:PHP周边问题的优化(比如说MYSQL Nginx/Apache)

  3:PHP语言资深分析,优化(PS主要指的是底层的C代码)

PHP的执行过程参看http://blog.csdn.net/risingsun001/article/details/22888861

下面针对php语言级的性能优化做实例讨论,对标题里面说的内容进行一个测试,接下来要书写两个文件 bad.php, goods.php

我们要测试的是合并两个数组的操作

bad.php

思路:

先将数组1逐个加入到目标数组中;

之后,遍历数组2,对比数组2的元素是否在数组1中出现,如果没有则插入到目标数组,否则忽略

 <span style="font-size:14px;"><?php
//准备两个内容随机的数组
$arr1 = $arr2 = $arr_merged = array();
//接下来随机给两个数组赋值
for ( $i=; $i<rand(,); $i++) {
$arr1[] = rand();
} for ( $i=; $i<rand(,); $i++) {
$arr2[] = rand();
} //开始循环比较
foreach ( $arr1 as $v ) {
$arr_merged[] = $v;
} foreach ( $arr2 as $v ) {
if(!in_array($v, $arr_merged)){
$arr_merged[] = $v;
}
} var_dump($arr_merged);</span>

goods.php

思路:

随机生成两个数组,在打乱顺序

之后,使用array_merge 合并

 <span style="font-size:14px;"><?php
//准备两个内容随机的数组
$arr1 = $arr2 = range(, );
$arr_merged = array();
//接下来随机给两个数组赋值
shuffle($arr1);
shuffle($arr2); $arr_merged = array_merge($arr1, $arr2); var_dump($arr_merged);
</span>

该程序的性能测试比较如下:http://blog.csdn.net/wjc19911118/article/details/41735659

3. 总结

优化点:少写代码,多用PHP自身提供的能力

性能问题:自己写的代码冗余较多,可读性不好,并且性能低

为什么性能低?php代码需要编译解析为底层语言, 这一过程每次请求都会 处理一遍,开销大。

好方法:多使用php内置变量,常量, 函数(spl 可以带给您好像好用的功能)

PHP 性能优化一的更多相关文章

  1. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  2. 03.SQLServer性能优化之---存储优化系列

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/60413 ...

  3. Web性能优化:What? Why? How?

    为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...

  4. Web性能优化:图片优化

    程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...

  5. C#中那些[举手之劳]的性能优化

    隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒...... 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿 ...

  6. JavaScript性能优化

    如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍J ...

  7. 02.SQLServer性能优化之---牛逼的OSQL----大数据导入

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...

  8. C++ 应用程序性能优化

    C++ 应用程序性能优化 eryar@163.com 1. Introduction 对于几何造型内核OpenCASCADE,由于会涉及到大量的数值算法,如矩阵相关计算,微积分,Newton迭代法解方 ...

  9. Android性能优化之利用LeakCanary检测内存泄漏及解决办法

    前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...

  10. 前端性能优化的另一种方式——HTTP2.0

    最近在读一本书叫<web性能权威指南>谷歌公司高性能团队核心成员的权威之作. 一直听说HTTP2.0,对此也仅仅是耳闻,没有具体研读过,这次正好有两个篇章,分别讲HTTP1.1和HTTP2 ...

随机推荐

  1. JS遍历子孙树

    function fn(dataList,parent_id){     var result = [] , temp;     for(var i in dataList){         if( ...

  2. Win10 提升系统响应速度

    转载百度经验: https://jingyan.baidu.com/article/54b6b9c0e9d61e2d583b4719.html 1.鼠标左键点击开始按钮,然后点击菜单中的设置,进入设置 ...

  3. 洛谷 P3478 [POI2008]STA-Station

    题目描述 The first stage of train system reform (that has been described in the problem Railways of the ...

  4. networkX用法整

    无向图,有向图,加权图等例子代码 [http://www.cnblogs.com/kaituorensheng/p/5423131.html#_label1] 数据分析学习笔记(三)-NetworkX ...

  5. Spring.net页面属性注入

    .条件spring.web程序集 1.1 system.web配置 <httpHandlers> <add verb="*" path="*.aspx& ...

  6. C#序列化效率对比

    原文出处:https://www.cnblogs.com/landeanfen/p/4627383.html 从使用序列化到现在,用到的无非下面几种方式:(1)JavaScriptSerializer ...

  7. sqlserver 2005范例代码查询辞典文摘

    第1章 select 1.显示指定想要获取的列要比使用select *更好 2.where not m.MemberCode = 1000 3.select * into aaa from Membe ...

  8. [GO]方法的重写

    package main import "fmt" type Person struct { name string sex byte age int } func (tmp Pe ...

  9. TangoAreaDescriptionMetaData区域描述元数据

    TangoAreaDescriptionMetaData com.google.atap.tangoservice Class TangoAreaDescriptionMetaData java.la ...

  10. 自己(转)String、StringBuffer与StringBuilder之间区别

    String.StringBuffer与StringBuilder之间区别   最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringB ...