PHP Extension Performance

featureimage จากการทดสอบ [Fibonacci 40](http://bit.ly/Pk8HkJ ) ด้วยภาษา Programming ที่เป็นที่นิยม ได้ผลลัพธ์การจัดอันดับออกมา ตามนี้

c > java > go > scala > luajit > nodejs > ruby 2.0.0-p0 > pypy > ruby 1.9.3+ > lua > php > python > perl > ruby 1.8.x

รายละเอียดการทดสอบ

LanguageTimes (user)PositionVersion
c with -O2 0m0.202s #0 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1
(Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
nodejs + cpp module 0m1.001s #1 v0.8.8, gcc -O2
java 0m1.305s #2 Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
go 0m1.667s #3 go version go1.0.2
scala 0m1.808s #4 Scala code runner version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL
luajit 0m2.579s #5 LuaJIT 2.0.0-beta10 -- Copyright (C) 2005-2012 Mike Pall.
nodejs 0m2.872s #6 v0.8.8
ruby 2.0.0-p0 0m27.777s #7 ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]
pypy 0m30.010s #8 Python 2.7.2 (341e1e3821ff, Jun 07 2012, 15:42:54) [PyPy 1.9.0 with GCC 4.2.1]
ruby 1.9.x 0m37.404s #9 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.1.0]
lua 0m40.709s #10 Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
jython 0m53.699s #11 Jython 2.5.2
php 1m17.728s #12 PHP 5.4.6 (cli) (built: Sep 8 2012 23:49:53)
python 1m17.979s #13 Python 2.7.2
perl 2m41.259s #14 This is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-thread-multi-2level
ruby 1.8.x 3m35.135s #15 ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

เรื่องน่าตกใจคือ อันดับ #7 กับ #6 ช่างแตกต่างกันโดยสิ้นเชิง Speed ห่างกันมากถึง 20 กว่าวินาที และ PHP อยู่อันดับที่ #12 ห่วยอย่างน่าอนาถ ถ้าเอาไปวาดกราฟจะออกมาประมาณนี้ Fibonacci จะเห็นว่า PHP 5.3 ยิ่งน่าอนาถหนักกว่าเก่า

แต่คนคนทำการทดสอบไว้ว่า ถ้าเราทำ Function Fibonacci ด้วยวิธีทำเป็น PHP Extension แล้วมาลองรันทดสอบดูหล่ะ ผลออกมาจะเป็นยังไง

Fibonacci PHP Extension Result

0.806 วินาที!!! แม่จ้าววววว ไหนลองเอามาเทียบกับกราฟเมื่อกี้นี้ซิ

Fibonacci PHP Extension Graph

สรุป

พลังของการเปลี่ยน Business Logic ไปไว้ใน PHP Extension ช่างมหาศาล

จากการทดลอง Fibonacci PHP Extension เร็วกว่า Fibonacci PHP 5.4 70เท่า และเร็วกว่า PHP 5.3 หลายร้อยเท่า!!! OMG!!

Credit

Phalcon / Zephir Introduction at PHPConfTW2013