119. PHP 性能问题(2)
来源:互联网 发布:免越狱安装软件 编辑:程序博客网 时间:2024/06/05 22:58
1.语言性能优化
bad.php
<?php$array_1 = array();$array_2 = array();for ($i=0;$i<rand(1000,2000);$i++){ $array_1[] = rand();}for ($i=0; $i<rand(1000,2000); $i++) { $array_2[] = rand();}$array_merged = array();foreach ($array_1 as $v) { $array_merged = $v;}foreach ($array_2 as $v) { if (!in_array($v,$array_merged)) { $array_merged[] = $v; }}var_dump($array_1,$array_2,$array_merged);
good.php
<?php$array_1 = $array_2 = range(1000,2000);shuffle($array_1);shuffle($array_2);$array_merged = array_merge($array_1,$array_2);var_dump($array_1,$array_2,$array_merged)
用 ab 压测
2. PHP 代码运行流程
用 PHP 内置函数,scanner 扫描的行数就少了很多,而且 zend 引擎容易理解,perser 成 cpcode 更少。phalcon现在更多的去缓存 opcode
3.PHP 内置函数的优劣
<?php$start = current_time();$i = 0;$arr = range(1,200000);while ($i<200000) { ++$i; // 两个内置函数实现同样的功能 isset($arr[$i]); //array_key_exists($i,$arr);}$end = current_time();echo "Load Time :" . number_format($end - $start,3) * 1000;function current_time(){ list($usec,$sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec);}
4.尽量少用魔法函数
<?phpfunction currency_time(){ list($usec,$sec) = explode(' ',microtime()); return (float)$sec + (float)$usec;}$start = currency_time();class Test{ // private $var = '123'; public $var = '123'; /*public function __get($varname) { return $this->var; }*/}$i = 0;while ($i<100000) { $i++; $test = new Test(); $test->var;}$end = currency_time();echo ($end-$start)*1000;
0 0
- 119. PHP 性能问题(2)
- PHP性能问题 总结
- PHP strtotime 性能问题
- PHP性能至一处小问题
- 118. PHP 性能问题
- PHP in_array的性能问题
- 122. PHP 性能问题(3)
- win2008+IIS7+PHP fastCGI性能问题
- php的in_array低性能问题
- PHP性能问题诊断与排查
- 遭遇php的in_array低性能问题
- php性能之我见(2)
- 如何提高php性能2
- PHP性能
- php中使用memcache扩展的性能问题
- Windows 性能问题诊断(2)
- 性能测试问题总结2
- 善用php-fpm的慢执行日志slow log,分析php性能问题
- 要么读书,要么健身,要么恋爱(三)城南旧事
- 使用merge标签自定义View
- 各种数据库信息查看命令
- zynq学习06 zynq的PL中加入的AXI_GPIO IP核来控制GPIO操作
- html/css网站demo实战
- 119. PHP 性能问题(2)
- apache Kafka Replication设计分析
- Struts2 入门 初步了解Struts2(3) Copy文件时的注意事项
- 备忘
- JAVAEE基础知识点
- collections在java中的常见用法
- Android Studio Multidex 解决方法数超65k限制
- java解析json字符串数据
- JAVA做 99乘法表(初学者)