โดยเริ่มที่ระบบที่ใช้ทดสอบ
- CPU AMD Sempron 2400+ 1.665 MHz
- DDR 512 MB
- HDD 80 GB
- CentOS 5.3 32 Bits
PHP
- <?
- class loader {
- private $_starttime = NULL;
- private $_endtime = NULL;
- function __construct(){
- $this->_starttime = $startarray[1] + $startarray[0];
- }
- public function pageload(){
- $this->_endtime = $endarray[1] + $endarray[0];
- }
- function __tostring(){
- }
- }
- for($j = 0; $j < 20; $j++){
- $timer = new loader();
- for($i=0; $i<1000; $i++){
- echo "Hello world";
- }
- }
- ?>
script เป็นการ สั่ง echo คำว่า "Hello world" จำนวน 1000 ครั้ง ทดสอบทั้งหมด 20 รอบ จากนั้นเอาผลมาเฉลี่ยออกมา
ส่วนของคำสั่ง print ก็เพียงแต่เปลี่ยนคำสั่งในบรรทัดที่ 30 เท่านั้น
การทดสอบทำผ่าน command line ด้วยคำสั่ง เพื่อไม่ให้มี overhead ของ http request อาจทำให้การทดสอบผิดพลาดได้
BASH
- php -f test.php
จากผลการทดสอบของ echo ได้
TEXT
- Array
- (
- [0] => 1.451160
- [1] => 1.458920
- [2] => 0.929450
- [3] => 1.470660
- [4] => 1.453920
- [5] => 1.465520
- [6] => 1.446040
- [7] => 1.448430
- [8] => 1.464920
- [9] => 1.453050
- [10] => 1.470920
- [11] => 1.438810
- [12] => 1.459860
- [13] => 1.463070
- [14] => 1.463870
- [15] => 1.460000
- [16] => 1.452650
- [17] => 1.461150
- [18] => 1.433570
- [19] => 1.460260
- )
- 1.4303115
ส่วนของ print จะได้
TEXT
- Array
- (
- [0] => 1.408350
- [1] => 1.464810
- [2] => 0.931530
- [3] => 1.474550
- [4] => 1.469550
- [5] => 1.497290
- [6] => 1.469370
- [7] => 1.461750
- [8] => 1.470250
- [9] => 1.471790
- [10] => 1.472310
- [11] => 1.456070
- [12] => 1.462980
- [13] => 1.466870
- [14] => 1.465110
- [15] => 1.479730
- [16] => 1.483620
- [17] => 1.466210
- [18] => 1.461590
- [19] => 1.501650
- )
- 1.441769
จะเห็นได้ว่า echo จะเร็วกว่า print 0.011 ที่ 1000 คำสั่ง
ถ้า script มีการใช้งาน echo/print มากๆ จะมีผลต่อ ความเร็วของการแสดงผลแน่นอน
ทั้งนี้เพื่อทดสอบความแตกต่างระหว่าง PHP แบบ cli และแบบ fast-cgi จึงมีการทดสอบผ่าน fast-cgi ด้วย ซึ่งผลการทดสอบแตกต่างกันอย่างมาก โดยได้ผลดังนี้
ผลการทดสอบของ echo ผ่าน fast-cgi
TEXT
- Array
- (
- [0] => 0.026820
- [1] => 0.021320
- [2] => 0.034170
- [3] => 0.009530
- [4] => 0.015830
- [5] => 0.018140
- [6] => 0.012720
- [7] => 0.019360
- [8] => 0.020660
- [9] => 0.014080
- [10] => 0.021210
- [11] => 0.017410
- [12] => 0.012820
- [13] => 0.018560
- [14] => 0.020690
- [15] => 0.013240
- [16] => 0.019470
- [17] => 0.017920
- [18] => 0.013870
- [19] => 0.020640
- )
- 0.018423
ส่วนผลของ print ผ่าน fast-cgi
TEXT
- Array
- (
- [0] => 0.018180
- [1] => 0.020350
- [2] => 0.018570
- [3] => 0.012630
- [4] => 0.019450
- [5] => 0.020540
- [6] => 0.013960
- [7] => 0.019990
- [8] => 0.020970
- [9] => 0.013030
- [10] => 0.019790
- [11] => 0.018720
- [12] => 0.012100
- [13] => 0.017810
- [14] => 0.018180
- [15] => 0.012180
- [16] => 0.020740
- [17] => 0.020730
- [18] => 0.011990
- [19] => 0.020420
- )
- 0.0175165
จะเห็นว่า fast-cgi เร็วกว่าแบบ cli อย่างมาก แม้ผลของ echo ผ่าน cli ที่ดีที่สุดยังช้ากว่า print ผ่าน fast-cgi เสียอีก