→ tkdmaf:測1萬筆時卻測出了出乎意料之外的結果。 12/03 15:30
→ tkdmaf:使用INI的時間為0.13~0.2,但用$lang=array()則是0.23~0.33 12/03 15:30
→ tkdmaf:反而是純讀INI的速度變快了。 12/03 15:31
我測的結果
Debian GNU/Linux 5.0
PHP 5.2.6-1+lenny9 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 4 2010
03:25:57)
陣列數:100001(因為我寫 0 <= 100000 = = 所以多個 1)
讀入 array.php 時間為 0.277458
改用 parse_ini_file 時間為 0.291061
以下是我測試的 code
#!/usr/bin/php
<?php
include('Timer.php');
$timer = new Timer();
$timer->start();
//include('array.php');
$test_array = parse_ini_file('array.ini');
$timer->stop();
echo count($test_array) . "\n";
$timer->display();
function generate_array()
{
$fp1 = fopen('array.ini', 'w+');
$fp2 = fopen('array.php', 'w+');
for($i=0;$i<=100000;$i++)
{
fputs($fp1, sprintf("array_%d = %d\n", $i, $i));
fputs($fp2, sprintf("'array_%d' => %d,\n", $i, $i));
}
fclose($fp1);
fclose($fp2);
}
?>
先用 generate_array 來產生兩種類型的檔案,接著在幫 array.php 補上
<?php、?>、$test_array = array(、);
不過我是純數字,也許陣列 value 可以換為字串試試看
--
看起來 parse_ini_file 似乎在正常的筆數之下是比 php array 快耶…
畢竟很少有人會在檔案裡面塞 100000 個 k-v pair 或是 setting…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.64.11
→ chrisQQ:附註,generate_array 也只要 1.353008 秒… (好快 12/03 15:39
推 Jerr:可以來個sqlite3嗎? :p 12/03 16:32
推 tkdmaf:我是直接在主程式就對$this->lang->load測。 12/03 17:01
→ tkdmaf:這樣也實測出用INI還是比較方便,效能上也能達到需求了。 12/03 17:03
→ tkdmaf:我的測試主機:ATOM 270 1.6GHZ,2G DDR3小筆電 12/03 17:06
→ chrisQQ:@Jerr 我看看吃飯前有沒有空在一起弄給你 XD 12/06 11:00