PHP:数组深度如何影响性能?

时间:2010-10-13 14:33:34

标签: php ajax arrays performance json

现在我知道有关于这个主题的一些相关问题,但这有点独特。

我有两个数组结构:

array(
    [0] => array(
        'stat1' => 50,
        'stat2' => 12,
        'stat3' => 0,
        'country_name' => 'United States'
        ),
    [1] => array(
        'stat1' => 40,
        'stat2' => 38,
        'stat3' => 15,
        'country_name' => 'Ireland'
        ),
    [2] => array(
        'stat1' => 108,
        'stat2' => 0,
        'stat3' => 122,
        'country_name' => 'Autralia'
        )
    )

和第二个

array(
    'stat1' => array(
        'countries' => array(
            'United States' => 50,
            'Ireland' => 40,
            'Autralia' => 108,
            )
        )
    ),
'stat2' => array(
        'countries' => array(
            'United States' => 12,
            'Ireland' => 38,
            )
        )
    ),
etc...

如果添加相应国家/地区的城市,则第二个阵列甚至可以达到4级或5级。需要注意的是,第二个数组结构将没有0个数据字段(请注意,在第二个数组中,澳大利亚不存在,因为它是0),但第一个结构将有一个零的整数。另请注意,第二个结构将具有重复项,即“美国”

我的问题是:当这些数组结构json_encode()并在POST ajax请求中使用时,它们如何进行比较?浅层深度阵列是否会更快或者更好的结构化阵列在尺寸方面会更好?

1 个答案:

答案 0 :(得分:1)

我已经做了一些测试,对于有限的数据集,输出数据的差异 - (我将数据输出到文本文件中)两者之间真的无关紧要。

  

数组结构1 - 所有城市和国家/地区的数据输出为68kb

     

阵列结构2 - 所有城市和国家数据输出到71kb

因此存在细微的差别,但考虑到数据是JSON格式并且在用于google可视化geomap API的AJAX请求中使用时,差异似乎微不足道。

我没有测试加载差异的微时间,但是用户要查看加载的.gif图像0.0024微秒(我为了参数而拍摄一个随机时间)不会造成很大影响可用性无论如何。 Thanx所有你的意见