您好,欢迎访问一九零五行业门户网

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

php 性能优化之php 语言级的性能优化一
对于这个问题首先我们要知道影响php的性能的原因是什么?也就是
    1 什么情况下会出现php性能问题?
1php语法使用不当(包括某些业务可以使用php 本身自带的函数来处理)
2使用php语言做了它不擅长的事
3用php语言链接的服务器不给力(当然如果是localhost也就是你本地配置比较差哈,建议换本吧,哈哈)
4php自身的短板 (php 自身就做不了)
5我们也不知道的问题 (囧)
2 php 性能问题简介之php的性能问题的解决方向
从困难度由浅到深分别为:
1 php 语言级的性能优化
2 php 周边问题的性能优化 (比如说mysql nginx|apache)
3 php 语言资深分析,优化(ps 主要指的是底层的c代码)
下面针对php语言级的性能优化做实例讨论,对标题里面说的内容进行一个测试,接下来要书写两个文件 bad.php, goods.php
我们要测试的是合并两个数组的操作(测试工具 apache ab test)
bad.php
思路:
先将数组1逐个加入到目标数组中;
之后,遍历数组2,对比数组2的元素是否在数组1中出现,如果没有则插入到目标数组,否则忽略掉
goods.php
思路:
随机生成两个数组,在打乱顺序
之后,使用array_merge 合并
exprs  
-----parser(解析为opcode)-----> opcodes ------exec(执行最后输出)-------> output
可以知道 一个php文件执行zend需要先扫描,然后解析为opcode 在执行输出,问题就出在这里,当我们使用php自身的函数的时候其实他就属于zend 引擎,所以zend 解析起来就比较顺手,速度那叫个快(goods.php), 但是当执行bad.php 的时候就会比较慢,因为读别人写的代码肯定没有读自己写的代码快大家说对吧,所以还是使用原创,不要自己造轮子比较好啊!
多说一点,这也就是为什么现在好些php扩展(比如 apc)都来缓存opcode 因为这样就少了扫描与解析的环节,那肯定是快了!
5 总结
优化点:少写代码,多用php自身提供的能力
性能问题:
自己写的代码冗余较多,可读性不好,并且性能低
为什么性能低?
php代码需要编译解析为底层语言, 这一过程每次请求都会 处理一遍,开销大。
好方法:
多使用php内置变量,常量, 函数(spl 可以带给您好像好用的功能)
其它类似信息

推荐信息