Re: [心得] CodeIgniter 1.7.2語系檔修正ini做法。

看板PHP作者 (ChrisLiu)時間15年前 (2010/12/03 15:38), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串2/2 (看更多)

12/03 15:30,
測1萬筆時卻測出了出乎意料之外的結果。
12/03 15:30

12/03 15:30,
使用INI的時間為0.13~0.2,但用$lang=array()則是0.23~0.33
12/03 15:30

12/03 15:31,
反而是純讀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

12/03 15:39, , 1F
附註,generate_array 也只要 1.353008 秒… (好快
12/03 15:39, 1F

12/03 16:32, , 2F
可以來個sqlite3嗎? :p
12/03 16:32, 2F

12/03 17:01, , 3F
我是直接在主程式就對$this->lang->load測。
12/03 17:01, 3F

12/03 17:03, , 4F
這樣也實測出用INI還是比較方便,效能上也能達到需求了。
12/03 17:03, 4F

12/03 17:06, , 5F
我的測試主機:ATOM 270 1.6GHZ,2G DDR3小筆電
12/03 17:06, 5F

12/06 11:00, , 6F
@Jerr 我看看吃飯前有沒有空在一起弄給你 XD
12/06 11:00, 6F
文章代碼(AID): #1C-9vo7p (PHP)
文章代碼(AID): #1C-9vo7p (PHP)