APIのベンチマーク
概要
- プログラムのプロファイラー(AWSのX-Ray)などでコードの速度を測定する以外にも、APIはネットワークの情報のやり取りがオーバーヘッドとなることがある
- GCPとAWS間でデータのやり取りを行った際に、同じ地域で使用しているのに、速度が大きく遅延したことに起因する
- gzipでデータを圧縮することで一定程度の改善を行うことは可能
検証法
- /ngrok/または、/bore/などでどこか別の場所にエンドポイントをリモートに作成し、リモートに対してテストを行うことで実際に近いパフォーマンスとなる
- boreは任意のvmにインストール可能
- ローカルに対してのアクセスで掛かった時間を求め、差分を取ることで、ネットワークの遅延の大きさを定量化できる
具体例
- 前提
- REST APIを作成し、サンプルクエリーを100回送り、平均を計算する
- 結果
- 無圧縮でAPIのやり取り
- リモート
平均 1.37sec
- ローカル
平均 0.00sec
- リモート
- 無圧縮でAPIのやり取り
- gzipで圧縮してAPIのやり取り
- リモート
平均 0.72sec
- ローカル
平均 0.00sec
- リモート