首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪种分配方法的工作速度更快?

哪种分配方法的工作速度更快?
EN

Stack Overflow用户
提问于 2010-06-18 16:53:51
回答 1查看 74关注 0票数 0

什么能更快地工作?它对生产力的影响会有多大?

代码语言:javascript
复制
$test = new Test();
$a1 = array();
$a2 = array();
$a3 = array();

$a1[1] = $test;
$a2['qwe'] = $test;
$a3[] = $test;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-18 17:12:47

由于没有人回答,我做了一些测试

代码:

代码语言:javascript
复制
<?php

class O
{
}

$test = new O;
$a1 = array();
$a2 = array();
$a3 = array();

$start = microtime(true);
for ($k = 0; $k < 1000000; $k++)
    $a1[1] = $test;
$time[1] = microtime(true)-$start;

$start = microtime(true);
for ($k = 0; $k < 1000000; $k++)
    $a2['qwe'] = $test;
$time[2] = microtime(true)-$start;

$start = microtime(true);
for ($k = 0; $k < 1000000; $k++)
    $a3[] = $test;
$time[3] = microtime(true)-$start;


print_r($time);

结果:

代码语言:javascript
复制
Array ( [1] => 0.18384599685669 [2] => 0.19556093215942 [3] => 0.3099570274353 )

第三个是最慢的,但主要是因为它实际上在每次遍历时分配了数百万个对象和前两个覆盖对象。当我第一次修改为$a1[$k] = $test;时,结果是相似的(尽管不要在内存限制较低的情况下运行它,比如128MB以下)。

结论是:正如我们之前所说的,it 并不重要。专注于编写可读并利用设计模式的代码,而不是一些次要的优化。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3068297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档