PHPのXML-RPCライブラリのベンチマーク
PHP で XML-RPC を利用する際には、PEARライブラリの XML-RPCと、PHPのXML-RPC Extension が多く知られています。
では、どのライブラリがどれだけ速いのか? 素朴な疑問ありましたので、実行速度を計測してみました。
- 対象:
- PHP extension XML-RPC
- PEAR XML-RPC
- PEAR XML-RPC2
- phpxmlrpc(EXTRA)※PHP extension XML-RPCのphp実装
スペック
- クライアント(xmlrpcclient.example.com)
- ハード
- Kernel : Linux 2.6.9
- CPU : Intel(R) Core(TM) Duo CPU T2500 @ 2.00GHz
- MEMORY : 1G
- ソフト
- PHP 5.2.5
- PEAR XML-RPC 1.5.1
- PEAR XML-RPC2 1.0.2
- Apache 2.2.8
- サーバー(xmlrpcserver.example.com)
- ハード
- xmlrpcserver.example.com
- OS : Windows XP Professional SP2
- CPU : Intel(R) Celeron(TM) M 1.40GHz
- MEMORY : 1G
- ソフト
- PHP 5.2.5
- PEAR XML-RPC 1.5.1
- PEAR XML-RPC2 1.0.2
- Apache 2.2.6
テスト概要
- XML-RPCサーバ xmlrpcserver.example.com でリクエストを受信し、XML-RPCリクエストをデコードし、XML-RPCクライアント xmlrpcclient.example.com へレスポンスを送信。
結果
php_xmlrpc_extensionは、pear_XML-RPCより、およそ4.3倍速いという結果になりました。
Requests per second
ライブラリ | Requests per second |
php_xmlrpc_extension | 237 |
pear_XML-RPC | 54.57 |
pear_XML-RPC2 | 44.74 |
phpxmlrpc | 32.76 |
Time taken for tests
ライブラリ | Time taken for tests |
php_xmlrpc_extension | 42.194386 |
pear_XML-RPC | 183.238006 |
pear_XML-RPC2 | 223.534755 |
phpxmlrpc | 305.213252 |
ソース
以下のスクリプトの動作は保証しません。