|
2.建立PHP測試環境
PHP的測試環境建立在Linux + Apache上,加上MySQL就是大家熟知的“LAMP”,也許自由軟體真的是盞明燈,在這個功利至上的世界引導我們走向光明。下載了Apache 2.0.52和PHP 4.3.10的源代碼后,編譯、安裝和配置都很順利,開發PHP可用的集成環境也不少,最好的可能是Zend Studio,整個程式用Java開發,可以跨平台,但速度比較慢。
為了訪問MySQL、Oracle和MS SQL Server,還必須在Linux上安裝這些數據庫的客戶端,SQL Server 2000沒有官方的Linux客戶端,但可以使用一個叫FreeTDS的第三方產品連接SQL Server。
費了一番周折后,終于可以使用PHP進行測試了,下面是用PHP進行整數計算的測試代碼︰
$debug = new Debug;
$debug->startTimer();
$count = intval( $loopCount );
for( $j = intval( 0 ); $j < $count; $j ++ )
{
$result = intval( 0 );
for( $i = intval( 0 ); $i < $count; $i ++ )
{
$result += $i;
}
}
$totalTime = $debug->endTimer();
代碼量似乎比C#還小,但為了計算營運時間我不得不使用了一個Debug類,PHP提供的功能顯然沒有.NET豐富,下面是Debug類的代碼︰
class Debug
{
function startTimer()
{
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
function endTimer()
{
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round (($endtime - $starttime), 5);
return $totaltime;
}
}
PHP4只支持有限的面向對象功能,與微軟.NET的技術先進無法相比,但PHP是這三種開發平台中最簡單易學的。下面是PHP4訪問SQL Server 2000的代碼︰
$debug = new Debug;
$debug->startTimer();
mt_srand( make_seed() );
$owner = mt_rand();
$count = intval( $sqlNumber );
$result = intval( 0 );
$conn = @mssql_connect( 'fly', 'simon', '123456' );
for( $i = intval( 0 ); $i < $count; $i ++ )
{
$sql = "insert into fortest values ( $owner, $i," +
"'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' )";
mssql_query( $sql );
}
$sql = "delete from fortest where ownerid = $owner";
mssql_query( $sql );
$totalTime = $debug->endTimer();
echo "<h2>Micosoft SQL Server</h2><br/>\n";
echo "<h3>完成了".$sqlNumber."次insert操作。</h3><br/>\n";
echo "<h3>共耗時".$totalTime."秒!</h3>\n";
FreeTDS對SQL Server 2000事務支持的不好,提供的數據庫函數中沒有事務功能,只好使用最基本的操作。PHP4的另一個缺點是連接Oracle和MySQL時代碼差別很大,完全倚賴于數據庫的底層界面,這樣數據提取性能雖然有所體提升,但修改程式比較麻煩。 |
|