直接返回数组的方法是最慢的

来源:互联网 发布:数控车床模拟仿真软件 编辑:程序博客网 时间:2024/05/09 08:05

 

缓存文件,大家用的最多的估计就是 return array();

实验证明,这种方法是较慢的,试考查以下的3个文件.

其一. $arr.php 直接返回 数组

<?php
return Array
(
    
"db_host1" => 123
,
    
"db_host2" => 123
,
    
"db_host3" => 123
,
    
"db_host4" => 123
,
    
"db_host5" => 123
,
    
"db_host6" => 123
,
    
"db_host7" => 123
,
    
"db_host8" => 123
,
    
"db_host9" => 123
,
    
"db_host10" => 123
,
    
"db_host11" => 123
,
    
"db_host12" => 123
,
    
"db_host13" => 123
,
    
"db_host14" => 123
,
    
"db_host15" => 123
,
    
"db_host16" => 
123
);
?>

其二,  ini.php 为INI文件

<?php exit;?>
db_host1 =123
db_host2 =123
db_host3 =123
db_host4 =123
db_host5 =123
db_host6 =123
db_host7 =123
db_host8 =123 
db_host9 =123
db_host10 =123
db_host11 =123
db_host12 =123
db_host13 =123
db_host14 =123
db_host15 =123
db_host16 =123

其三,str.php 为序例化后的数组

<?php
return 
'a:16:{s:8:"db_host1";s:3:"123";s:8:"db_host2";s:3:"123";s:8:"db_host3";s:3:"123";s:8:"db_host4";s:3:"123";s:8:"db_host5";s:3:"123";s:8:"db_host6";s:3:"123";s:8:"db_host7";s:3:"123";s:8:"db_host8";s:3:"123";s:8:"db_host9";s:3:"123";s:9:"db_host10";s:3:"123";s:9:"db_host11";s:3:"123";s:9:"db_host12";s:3:"123";s:9:"db_host13";s:3:"123";s:9:"db_host14";s:3:"123";s:9:"db_host15";s:3:"123";s:9:"db_host16";s:3:"123";}'
;
?>

分别对3个文件  进行10000次包含返回数组测试

$t1 microtime(true);

$file1 './arr.php'
;
$file2 './ini.php'
;
$file3 './str.php'
;

for(
$i=0$i<10000$i
++){
//$arr  = require $file1;
//$arr  = parse_ini_file($file2);
$arr  unserialize(require $file3
);
}

$t2 microtime(true
);
echo 
$t2-$t1;

得出结果:

arr.php       5.7820551395416

ini.php        5.3364160060883

str.php        5.5691919326782

其中,排得最快的居然是 INI文件.

其次是序列化, 最慢的是直接 return 数组

结论:

   ini 文件不错,方便书写(可以考虑)

   保存数组, 用序列化!

原创粉丝点击