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&lt;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

Read More

Lua for PHP 安裝

主要安裝擴充套件資訊 LUA for PHP
使用 Plua 為安裝源.

Linux 安裝方式:
先安裝好 lua:

1
$apt-get install lua5.1 liblua5.1-0-dev

先下載並解開:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ cd /tmp
$ wget http://plua.googlecode.com/files/plua-1.0.0.zip
$ tar zxvf plua-1.0.0.zip
$ cd plua
$ phpize
$ whereis php-config
php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz
$ rm -f include
$ ln -s /usr/include/lua5.1 include
$ ln -s /usr/lib lib
$ cd lib
$ ln -s /usr/lib/liblua5.1.a liblua.a
$ ln -s /usr/lib/liblua5.1.so liblua.so
$ cd ..
$ make
$ make install
Installing shared extensions:     /usr/lib/php5/20090626/
$

自行編輯php 設定 增加extension=plua.so

FreeBSD 安裝方式:
先安裝好 lua:

1
$cd /usr/port/lang/lua ; make install clean ;

先下載並解開:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cd /tmp
$ wget http://plua.googlecode.com/files/plua-1.0.0.zip
$ tar zxvf plua-1.0.0.zip
$ cd plua
$ phpize
$ whereis php-config
php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz
$ rm -f include
$ ln -s /usr/local/include/lua51 include
$ ln -s /usr/local/lib/lua51 lib
$ cd ..
$ make
$ make install
Installing shared extensions:     /usr/lib/php5/20090626/
$

自行編輯/usr/local/etc/php/extension.ini 設定 增加extension=plua.so