APIパフォーマンス最適化とレイテンシ削減

Smart Money APIで100ms未満の応答時間を実現。キャッシュ、コネクションプーリング、バッチ操作、クエリ最適化をマスターし、最大スループットを達成。

2026年3月21日公開 17分で読む パフォーマンス

パフォーマンス概要

Smart Money APIは低レイテンシと高スループットに最適化されています。統合側で推奨パターンを実装することで、最大のパフォーマンスを実現できます。

パフォーマンス最適化のレイヤー:

  • キャッシュ — ローカルおよびCDNキャッシュによりオリジンリクエストを削減
  • コネクションプーリング — コネクションを再利用し、オーバーヘッドを削減
  • バッチ操作 — 複数のリクエストを1つに結合
  • クエリ最適化 — 必要なデータのみをリクエスト
  • 非同期/並列 — 複数のリクエストを同時に処理

パフォーマンス目標: P95レイテンシ <100ms、P99 <500ms、99.9%の稼働率と<0.1%のエラーレート。

キャッシュ戦略

レスポンスキャッシュ

ローカルキャッシュ
// Cache-Controlヘッダーを尊重
const cache = new Map();
async function cachedFetch(url) {
const cached = cache.get(url);
if (cached && !cached.isExpired) {
return cached.data;
}
const response = await fetch(url);
const ttl = parseCacheControl(response.headers);
cache.set(url, { data: response, expiry: ttl });
return response;
}

キャッシュ無効化

  • クジラ蓄積データ: 5分TTL
  • ファンディングレート: 1分TTL
  • OHLCVデータ: 1時間TTL
  • ヒストリカルデータ: 24時間TTL
30秒でAPIキーを取得

構築の準備はできていますか?無料のAPIキー(1日100回、カード不要)を取得し、ライブのクジラ、ファンディング、オンチェーンデータを取得し始めましょう。

APIキーを取得 →

コネクションプーリング

HTTPコネクションの再利用

コネクションプール
// Node.js HTTP Agent with pooling
const http = require('http');
const https = require('https');
const httpAgent = new http.Agent({
keepAlive: true,
maxSockets: 50,
maxFreeSockets: 10
});
const httpsAgent = new https.Agent({
keepAlive: true,
maxSockets: 50,
maxFreeSockets: 10
});
// リクエストでエージェントを使用
fetch(url, { agent: httpsAgent });

コネクション設定

パラメータ 推奨 理由
maxSockets 50-100 並行性とリソース使用量のバランス
maxFreeSockets 10-20 アイドルコネクションを再利用するため
keepAliveTimeout 60000ms サーバータイムアウトに合わせる

バッチ操作

リクエストの結合

バッチクエリ
// 複数のリクエストの代わりに
// GET /whales?asset=BTC
// GET /whales?asset=ETH
// GET /whales?asset=SOL
// 1つのバッチリクエストを使用
GET /v1/whales?asset=BTC,ETH,SOL
// 3つの逐次リクエストに対して約200ms節約

バッチ制限

  • リクエストあたりの最大シンボル数: 100
  • 最大時間範囲: 365日
  • 最大結果数: 10,000行

クエリ最適化

リクエスト最適化

  • フィールドを指定 — 必要なフィールドのみをリクエスト
  • フィルターを使用 — フィルターでレスポンスサイズを削減
  • ページネーション — offsetではなくlimitパラメータを使用
  • タイムフレーム — 必要なデータのみをリクエスト
最適化されたクエリ
// 効率が低い: 大量のデータ
GET /v1/whales?lookback=90d&limit=10000
// 効率的: 特定のデータ
GET /v1/whales?
asset=BTC&
metric=accumulation&
lookback=7d&
limit=100

レスポンス圧縮

Gzip圧縮

リクエスト圧縮
// リクエストで圧縮を有効化
fetch(url, {
headers: {
'Accept-Encoding': 'gzip, deflate'
}
});
// APIはサポートされていれば自動的に圧縮されます
// 典型的な圧縮率: 70-80%のサイズ削減

圧縮による節約

データタイプ 非圧縮 圧縮済み 節約率
JSONレスポンス 500KB 85KB 83%
大規模テーブル 2MB 350KB 82%

非同期/並列パターン

並行リクエスト

並列リクエスト
// 非効率: 逐次処理
const btc = await fetch('/whales/BTC');
const eth = await fetch('/whales/ETH');
const sol = await fetch('/whales/SOL');
// 総時間: ~300ms
// 効率的: 並列処理
const [btc, eth, sol] = await Promise.all([
fetch('/whales/BTC'),
fetch('/whales/ETH'),
fetch('/whales/SOL')
]);
// 総時間: ~100ms (3倍高速!)

パフォーマンスメトリクス

主要メトリクス

メトリクス 目標値 測定方法
P50レイテンシ <50ms 中央値応答時間
P95レイテンシ <100ms 95パーセンタイル
P99レイテンシ <500ms 99パーセンタイル
スループット >1000 req/s 1秒あたりのリクエスト数

パフォーマンス監視

パフォーマンスモニタリング
// 応答時間を追跡
const start = performance.now();
const response = await fetch(url);
const duration = performance.now() - start;
// 分析用にログ記録
console.log(`リクエスト処理時間 ${duration}ms`);

ベンチマーク

負荷テスト

ボトルネックを特定するため統合をベンチマーク:

  • ツール: Apache Bench、wrk、またはLocust
  • 現実的な並行レベルでテスト
  • 平均だけでなくレイテンシ分布を測定
  • キャッシュあり/なし両方でテスト

最適化推奨事項

簡単に改善可能な項目

  1. HTTPコネクションプーリングを有効化 (1-5倍の改善)
  2. ローカルキャッシュを実装 (繰り返しリクエストで10-50倍)
  3. バッチ操作を使用 (リクエスト数2-5倍削減)
  4. gzip圧縮を有効化 (帯域幅3-5倍削減)

高度な最適化

  1. 過去データにCDNキャッシュを実装
  2. ローカルキャッシュにデータベース接続プールを使用
  3. サーキットブレーカーパターンを実装
  4. 大規模データセットにストリーミングレスポンスを使用

最大パフォーマンスの達成

Smart Money APIは高速性を追求して設計されています。これらの最適化戦略を実装すれば100ms未満のレイテンシと最大スループットを実現できます。

パフォーマンスティアを確認
ProおよびEnterpriseプランには高度なキャッシュとパフォーマンス機能が含まれます。

関連リソース

無料で開始 — 1日100回、カード不要

3つの取引所のホエールフロー、資金調達、オープンインタレスト、オンチェーンデータを1つのAPIから取得。無料枠、クレジットカード不要、いつでもアップグレード可能。

無料で開始 →
ライブAPIコンソールを試す → (アカウント不要)