php传值和引用哪个效率高,php方法传值和传引用性能比较
测试代码test.php:
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function a($arr) {
$data = [];
foreach($arr as $var) {
$data[] = $var;
}
return $data;
}
function b(&$arr) {
$data = [];
foreach($arr as $var) {
$data[] = $var;
}
return $data;
}
$arr = [
[
‘aaa‘ => [
‘aaa‘=>‘bbb‘,
‘bbb‘=>‘bbb‘,
‘ccc‘=>‘bbb‘,
‘ddd‘=>‘bbb‘,
‘eee‘=>‘bbb‘,
‘fff‘=>‘bbb‘,
‘add‘=>‘bbb‘,
‘dse‘=>‘bbb‘,
‘dad‘=>‘bbb‘,
‘dsa‘=>‘bbb‘,
‘das‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘qer‘=>‘bbb‘,
‘qad‘=>‘bbb‘,
‘asz‘=>‘bbb‘,
‘gda‘=>‘bbb‘,
‘abc‘=>‘bbb‘,
‘vbv‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘tew‘=>‘bbb‘,
],
‘bbb‘ => [
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>[
‘aaa‘=>‘bbb‘,
‘bbb‘=>‘bbb‘,
‘ccc‘=>‘bbb‘,
‘ddd‘=>‘bbb‘,
‘eee‘=>‘bbb‘,
‘fff‘=>‘bbb‘,
‘add‘=>‘bbb‘,
‘dse‘=>‘bbb‘,
‘dad‘=>‘bbb‘,
‘dsa‘=>‘bbb‘,
‘das‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘qer‘=>‘bbb‘,
‘qad‘=>‘bbb‘,
‘asz‘=>‘bbb‘,
‘gda‘=>‘bbb‘,
‘abc‘=>‘bbb‘,
‘vbv‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘tew‘=>[
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>[
‘aaa‘=>‘bbb‘,
‘bbb‘=>‘bbb‘,
‘ccc‘=>‘bbb‘,
‘ddd‘=>‘bbb‘,
‘eee‘=>‘bbb‘,
‘fff‘=>‘bbb‘,
‘add‘=>‘bbb‘,
‘dse‘=>‘bbb‘,
‘dad‘=>‘bbb‘,
‘dsa‘=>‘bbb‘,
‘das‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘qer‘=>‘bbb‘,
‘qad‘=>‘bbb‘,
‘asz‘=>‘bbb‘,
‘gda‘=>‘bbb‘,
‘abc‘=>‘bbb‘,
‘vbv‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘tew‘=>[
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>[
‘aaa‘=>‘bbb‘,
‘bbb‘=>‘bbb‘,
‘ccc‘=>‘bbb‘,
‘ddd‘=>‘bbb‘,
‘eee‘=>‘bbb‘,
‘fff‘=>‘bbb‘,
‘add‘=>‘bbb‘,
‘dse‘=>‘bbb‘,
‘dad‘=>‘bbb‘,
‘dsa‘=>‘bbb‘,
‘das‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘qer‘=>‘bbb‘,
‘qad‘=>‘bbb‘,
‘asz‘=>‘bbb‘,
‘gda‘=>‘bbb‘,
‘abc‘=>‘bbb‘,
‘vbv‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘tew‘=>‘bbb‘,
],
],
],
],
],
],
‘ccc‘ => [
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>‘bbb‘,
‘caa‘=>[
‘aaa‘=>‘bbb‘,
‘bbb‘=>‘bbb‘,
‘ccc‘=>‘bbb‘,
‘ddd‘=>‘bbb‘,
‘eee‘=>‘bbb‘,
‘fff‘=>‘bbb‘,
‘add‘=>‘bbb‘,
‘dse‘=>‘bbb‘,
‘dad‘=>‘bbb‘,
‘dsa‘=>‘bbb‘,
‘das‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘qer‘=>‘bbb‘,
‘qad‘=>‘bbb‘,
‘asz‘=>‘bbb‘,
‘gda‘=>‘bbb‘,
‘abc‘=>‘bbb‘,
‘vbv‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘tew‘=>[
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>‘bbb‘,
‘qaa‘=>[
‘aaa‘=>‘bbb‘,
‘bbb‘=>‘bbb‘,
‘ccc‘=>‘bbb‘,
‘ddd‘=>‘bbb‘,
‘eee‘=>‘bbb‘,
‘fff‘=>‘bbb‘,
‘add‘=>‘bbb‘,
‘dse‘=>‘bbb‘,
‘dad‘=>‘bbb‘,
‘dsa‘=>‘bbb‘,
‘das‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘qer‘=>‘bbb‘,
‘qad‘=>‘bbb‘,
‘asz‘=>‘bbb‘,
‘gda‘=>‘bbb‘,
‘abc‘=>‘bbb‘,
‘vbv‘=>‘bbb‘,
‘ewq‘=>‘bbb‘,
‘tew‘=>‘bbb‘,
],
],
],
],
]
];
$time = microtime_float();
echo ‘first start: ‘.$time."\n";
//for ($i = 0 ; $i<5000000; $i++) {
//
// a($arr);
//}
a($arr);
$end = microtime_float();
echo ‘first end:‘.$end."\n";
echo ‘value used:‘.bcsub($end , $time,4);
echo "\n";
echo "\n";
echo "\n";
$time = microtime_float();
echo ‘second start:‘.$time."\n";
//for ($i = 0 ; $i<5000000; $i++) {
// b($arr);
//}
b($arr);
$end = microtime_float();
echo ‘second end:‘.$end."\n";
echo ‘second used:‘.bcsub($end,$time,4);
echo "\n";
测试方法:
watch -n 1 -d php test.php
// 输出
first start: 1539332451.0195
first end:1539332451.0197
value used:0.0002
second start:1539332451.0198
second end:1539332451.0198
second used:0.0000
first start: 1539332463.6168
first end:1539332463.6169
value used:0.0001
second start:1539332463.6169
second end:1539332463.6169
second used:0.0000
结论:
传引用的性能要高于传值,特别是传递的值比较大的时候,性能会很明显。这是因为传引用只是复制了地址(一个16进制数)
并发的瓶颈一般不会再php,而是在框架、在数据库。
原文:https://www.cnblogs.com/gelu/p/9778864.html
php传值和引用哪个效率高,php方法传值和传引用性能比较相关推荐
- linux和ios哪个效率高,8月iOS最强设备性能排行榜
今天,安兔兔公布了8月份国内iOS设备的性能排行情况,和上月的情况相同,在搭载A12处理器的全新一代iPhone发布之前,iOS性能排行版处在相对稳定的状态下,不会有较大的波动. 不过,再有10天,新 ...
- [转]详细讲解提高数据库查询效率的实用方法、外键关于性能
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- JavaScript 是传值调用还是传引用调用?
1. 例子 先来看两个个来自于 <JavaScript 高级程序设计>P70-P71 的两个例子. 1.1. 基本类型参数传递 function addTen(num) {num += 1 ...
- C++ 函数参数传递:传值,传指针,传引用
PS:首先理解形参 实参概念.形参是在函数定义的括号内定义的专用变量,它们的目的是保存按实参传递给它们的信息,实参被列在函数调用语句的括号内. int func(int x)//x是形参 {ret ...
- case when 效率高不高_南京薄蜂窝纸板效率高
目前国产的瓦楞纸板都不同程度地存在起泡现象,它在很大程度上影响了瓦楞纸板的质量,若每平方米脱胶部分面积之和大于500px~2,则纸板为不合格产品,因此,有效地控制和脱胶和起泡缺陷,对生产企业提高产品质 ...
- C++中的参数传递方式:传值、传地址、传引用总结
指针:指针是一个变量,只不过这个变量中存储的是一个地址,指向内存中的一个单元. 引用:引用和原变量是同一个东西,只不过是原变量的一个别名. int a = 10; 定义一个整型变量aint *p = ...
- 传值调用 与传地址调用(传引用)
转自:http://myturn.blog.hexun.com/15584978_d.html #include <iostream> using namespace std ; void ...
- 移除集合效率高还是add高_List、set集合接口分析
一.List接口详解 1.List接口有三个实现类,ArrayList.LinkedList.Vector 2.三个实现类的异同点: (1)ArrayList: 作为list接口的主要实现类:线程不安 ...
- 传值类型_Java内存管理:Stackoverflow问答-Java是传值还是传引用(十一)
勿在流沙筑高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 本文导图: 一.由一个提问引发的思考 在Stack Overflow 看到这样一个问题 ...
- sql between 效率高吗_整个SQL语句的执行效率都靠它了...
作者:韩锋 优化器是数据库最核心的功能,也是最复杂的一部分.它负责将用户提交的SQL语句根据各种判断标准,制定出最优的执行计划,并交由执行器来最终执行.优化器算法的好坏.能力的强弱,直接决定了语句的执 ...
最新文章
- opencvmediapipe 人脸检测+摄像头实时
- SQL alter 的几种用法
- ASP.NET中JSON的序列化和反序列化
- Ukiyo-e faces dataset 浮世绘面孔数据集
- Flask之flask-session
- java语言的未来将去向何方?
- 华为官方开启Mate 40系列预热:即将推出敬请期待
- ViewPager使用讲解
- java excel模板中列表_java中自定义excel模板并且填充内容
- Java导出导入Excel方法
- Linux VS code安装Monaco字体
- STM32H743 驱动 W25Q256
- 新浪微博下载完整相册
- authorization cache cannot be obtained
- 笔记本win10 64位 1050Ti显卡 安装Anaconda3.4.2.0 (python3.5版)+tensorflow gpu版
- 实验一 验证删除快照时VMware会改变父快照或基础磁盘
- 努比亚android最高版本,努比亚Z11安卓7.1固件开发版下载地址:新增压力按键等功能...
- 商品3D建模的视觉定位和前景分割方法
- PMP计算(带例题)
- [附源码]Java计算机毕业设计SSM超市会员积分管理系统
热门文章
- 科大讯飞语音转写以及语音合成配置+遇到问题处理
- 青囊如可授 从此访鸿蒙的意思,《坛滴槐花露,香飘柏子风。》
- 微型计算机偏移地址,请高手讲解一下在微机原理里面,偏移地址,段地址,实体地址之间的关系!配合图解更好,谢谢!...
- python性能测试框架_python性能测试框架locust(一)
- 以太网电缆行业调研报告 - 市场现状分析与发展前景预测
- 扫描机一直显示连接服务器,扫描仪通过SMTP中继服务器发送通知邮件失败
- java 找不到符号
- Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
- excel表格内怎么换行的教程
- 高级会计职称计算机考什么,高级会计师考试要考哪些科目