Lua for PHP 實測

繼上一篇 Lua for PHP 安裝,現在來是實測Lua 速度.
素聞Lua 執行效能速度之優異不論是陣列字串運算處理皆在PHP之上,這篇先主要針對Array做實測.
index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$array_a = array();
for($i=1; $i<100000; $i++) {
    $array_a[$i]= rand(1,9999);
}
//新增Lua物件 並載入test.lua
$lua=new plua('test.lua');
//複製一個陣列並丟到Lua 物件內
$array_b = $array_a;
$lua->array_b = $array_b;
//測試PHP物件排序效能
$mtime = explode(' ', microtime());
$starttime = $mtime[1] + $mtime[0];
//var_dump($array_a);
rsort($array_a);
//var_dump($array_a);
$mtime = explode(' ', microtime());
$times=number_format(($mtime[1] + $mtime[0] - $starttime), 8);
//顯示PHP執行結果所需時間
echo "PHP rsort time $times \n";
 
 
$mtime = explode(' ', microtime());
$starttime = $mtime[1] + $mtime[0];
//var_dump($array_b);
//測試Lua物件排序效能
$array_b = $lua->test();
//var_dump($array_b);
$mtime = explode(' ', microtime());
$times=number_format(($mtime[1] + $mtime[0] - $starttime), 8);
//顯示Lua執行結果所需時間
echo "Lua array sort time $times \n";

test.lua

1
2
3
4
function test()
    table.sort( array_b )
	return array_b
end


執行中之所以用如此大陣列才能有效顯示其優勢.
(畢竟PHP還需要傳送陣列到Lua,如果太小光傳送過去都比運算陣列時間長)
執行結果:

1
2
PHP rsort time 0.24731302 
Lua array sort time 0.17132020

此範例只是針對陣列做簡單處理運算,試想如果你所需要處理資料複雜且繁瑣.
交給Lua處理,不失為對php做加速的處理.
剩下發揮交給你啦!!
byby~

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *