【コラム】
FX.php/APIの違い - レコード検索(2), (3)で作成した2つの検索/一覧PHPを使用し、動作のパフォーマンス・サーバにかかる負荷を比較する。今回はソート指定をおこない、レイアウトに配置するフィールド数を増やしてみた。
レコードの登録や編集と違い、検索処理にはパフォーマンスに影響する要因がいくつかあるのは前回紹介したとおり。今回はレイアウトに配置するフィールドの数を増やし、ソートをおこなった条件で検証をおこなった。動作環境は前回計測時とほとんどおなじ。処理時間が長くなった影響で、アクティビティモニタを使用しないことにした。
クライアントPCからApache JMeterを使用し、(2), (3)で作成したfx_find.phpとapi_find.phpにアクセス、応答速度などを計測する。
iostat(8)の結果よりユーザプロセスによるCPU使用率を抜きだし、グラフ化した。
| 同時使用ユーザ数 | 総リクエスト数 | Average[ms] | Min[ms] | Max[ms] | Std. Dev. | Throughput/sec | KB/sec | Time |
|---|---|---|---|---|---|---|---|---|
| 10 | 1,000 | 402 | 66 | 932 | 75.26 | 24.1 | 96.6 | 00:41.28 |
| 20 | 2,000 | 808 | 68 | 16272 | 1064.41 | 22.7 | 91.01 | 01:27.98 |
| 30 | 3,000 | 1265 | 68 | 8642 | 512.12 | 23 | 92.29 | 02:10.33 |
| 40 | 4,000 | 1634 | 67 | 23737 | 1471.83 | 23.1 | 92.53 | 02:53.44 |
| 50 | 5,000 | 2147 | 68 | 4807 | 628.36 | 22.7 | 91.27 | 03:39.82 |
| 平均 | 1251.2 | 67.4 | 10878 | 750.4 | 23.12 | 92.74 |
| 同時使用ユーザ数 | 総リクエスト数 | Average[ms] | Min[ms] | Max[ms] | Std. Dev. | Throughput/sec | KB/sec | Time |
|---|---|---|---|---|---|---|---|---|
| 10 | 1,000 | 1404 | 135 | 3088 | 497.79 | 7 | 59.3 | 02:22.23 |
| 20 | 2,000 | 2812 | 131 | 18122 | 1447.76 | 6.8 | 57.4 | 04:54.07 |
| 30 | 3,000 | 4316 | 197 | 22737 | 2088.6 | 6.6 | 55.69 | 07:34.76 |
| 40 | 4,000 | 5737 | 147 | 26306 | 2261.16 | 6.8 | 57.37 | 09:48.59 |
| 50 | 5,000 | 7188 | 348 | 34000 | 3298.02 | 6.7 | 57.01 | 12:20.30 |
| 平均 | 4291.4 | 191.6 | 20850.6 | 1918.67 | 6.78 | 57.35 |
| 同時使用ユーザ数 | 総リクエスト数 | Average[ms] | Min[ms] | Max[ms] | Std. Dev. | Throughput/sec | KB/sec | Time |
|---|---|---|---|---|---|---|---|---|
| 10 | 1,000 | 522 | 91 | 2643 | 118.67 | 18.6 | 75.05 | 00:53.54 |
| 20 | 2,000 | 1018 | 101 | 16872 | 1296.28 | 18.1 | 72.96 | 01:50.52 |
| 30 | 3,000 | 1581 | 128 | 17741 | 1373.35 | 18.1 | 72.93 | 02:45.96 |
| 40 | 4,000 | 2154 | 136 | 24580 | 1449.95 | 17.7 | 71.4 | 03:45.91 |
| 50 | 5,000 | 2728 | 90 | 31025 | 2134.36 | 17.5 | 70.58 | 04:36.77 |
| 平均 | 1600.6 | 109.2 | 18572.2 | 1274.52 | 18 | 72.58 |
| 同時使用ユーザ数 | 総リクエスト数 | Average[ms] | Min[ms] | Max[ms] | Std. Dev. | Throughput/sec | KB/sec | Time |
|---|---|---|---|---|---|---|---|---|
| 10 | 1,000 | 1478 | 172 | 3702 | 433.83 | 6.7 | 56.56 | 02:29.76 |
| 20 | 2,000 | 3128 | 174 | 12960 | 1252.33 | 6.3 | 53.41 | 05:17.33 |
| 30 | 3,000 | 4548 | 175 | 12578 | 134.81 | 6.5 | 55.05 | 07:41.98 |
| 40 | 4,000 | 5992 | 211 | 30358 | 2611.92 | 6.5 | 55.21 | 10:14.26 |
| 50 | 5,000 | 7872 | 170 | 30575 | 2930.58 | 6.2 | 52.65 | 13:25.21 |
| 平均 | 4603.6 | 180.4 | 18034.6 | 1472.69 | 6.44 | 54.58 |
総レコード・一度に取得するレコードが少ない場合は、ソートの有無はパフォーマンスにさほど影響を与えない結果となった。パフォーマンスに著しい影響を与えたのは、配置フィールド数が多い、かつ、非保存の計算フィールドが配置された場合。BとCを比較するとFX.phpは約3.5倍、FileMaker API for PHPは約2.9倍。AとCを比較すると、FX.phpは約3.8倍、FileMaker API for PHPは約3.1倍ものパフォーマンス差が出ていることがわかる。
FX.phpはFileMaker API for PHPと比較すると機能がシンプルな分高速。しかしこの恩恵は、レイアウトに配置しているフィールドを最適化することではじめて受けることができる。環境Aの場合、FX.phpはFileMaker API for PHPより約1.3~1.5倍高速に動作している。しかし環境Cの場合、最大でも1.1倍ほどのパフォーマンス差しか表れなかった。逆に言えば、レイアウトに配置しているフィールドを最適化していなければFX.php・APIどちらを採用していても遅いWebアプリが出来上がるということだ。
サーバにかかる負荷はやはり多機能な分、FileMaker API for PHPの方が分が悪いようだ。環境CはFX.php・FileMaker API for PHPの処理時間に差はあまりないものの、CPU負荷率は全3パターンの環境においてAPIがFX.php処理時の負荷を上回る結果となっている。
FileMakerなWebアプリにおいて、まず真っ先に注目したいのは「その処理に適切なレイアウトが指定されているかどうか」だ。FX.php/FileMaker API for PHPどちらでも、レイアウトの指定や構成を改善した場合、そのWebアプリは最高で3-4倍高速化する可能性がある。バックナンバー「スピードアップのための徹底チューニング」を参考に、高速化をはかってみてほしい。
| ファイルメーカー、FileMakerセミナーイベントを6月に5都市で開催 [2010/4/20] |
| 「FileMaker Pro 11」発表 - グラフ作成機能やクィック検索を搭載 [2010/3/10] |
| ファイルメーカー、Bento 3用テンプレート「連絡先&顧客管理」を無償提供 [2010/1/14] |
| FileMaker、米サンディエゴにて開発者向けカンファレンス開催 - 早期登録受付開始 [2009/11/20] |
| Cypress、「PSoC 1」用IDE「PSoC Designer」の新バージョンを発表 [16:16 5/22] |
| SCREEN、プリント基板向け直接描画装置の高精細モデルを発表 [16:08 5/22] |
| 東北大、顔料からの有限長カーボンナノチューブ分子の合成に成功 [15:52 5/22] |
| 性かく乱物質「幼若ホルモン類似体」はミジンコに多大に影響 - NIBBなど [15:43 5/22] |
| TI、産業用アプリケーション向けに「OMAP5432」搭載評価モジュールを発表 [15:19 5/22] |
|
【特別企画】大規模化・複雑化するデータセンター運用管理の最適解 [16:24 5/22] エンタープライズ |
|
Cypress、「PSoC 1」用IDE「PSoC Designer」の新バージョンを発表 [16:16 5/22] 開発・SE |
|
絵が描けなくても3Dマンガを作成可能なWebアプリ「箱人形マンガ」 [16:16 5/22] クリエイティブ |
|
「能率手帳」が新名称「NOLTY(ノルティ)」へ! - 64年ぶりブランド刷新 [16:16 5/22] キャリア |
|
SCREEN、プリント基板向け直接描画装置の高精細モデルを発表 [16:08 5/22] 開発・SE |