Pengoptimuman Prestasi API dan Pengurangan Kependaman

Capai masa tindak balas di bawah 100ms dengan Smart Money API. Kuasai cache, pengumpulan sambungan, operasi batch, dan pengoptimuman query untuk throughput maksimum.

Diterbitkan pada 21 Mac 2026 17 minit baca Prestasi

Gambaran Keseluruhan Prestasi

Smart Money API dioptimumkan untuk kependaman rendah dan throughput tinggi. Capai prestasi maksimum dengan melaksanakan corak yang disyorkan pada integrasi anda.

Lapisan pengoptimuman prestasi:

  • Cache — Cache tempatan dan CDN mengurangkan permintaan asal
  • Pengumpulan Sambungan — Gunakan semula sambungan, kurangkan overhead
  • Operasi Batch — Gabungkan pelbagai permintaan menjadi satu
  • Pengoptimuman Query — Minta hanya data yang diperlukan
  • Async/Parallel — Proses pelbagai permintaan secara serentak

Sasaran Prestasi: Kependaman P95 <100ms, P99 <500ms, uptime 99.9% dengan kadar ralat <0.1%.

Strategi Cache

Cache Respons

Cache Tempatan
// Hormati header 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;
}

Pembatalan Cache

  • Data pengumpulan paus: TTL 5 minit
  • Kadar pembiayaan: TTL 1 minit
  • Data OHLCV: TTL 1 jam
  • Data sejarah: TTL 24 jam
Dapatkan kunci API anda dalam 30 saat

Sedia untuk membina? Dapatkan kunci API percuma (100 panggilan/hari, tanpa kad) dan mula menarik data paus, pembiayaan dan on-chain secara langsung.

Dapatkan kunci API anda →

Pengumpulan Sambungan

Penggunaan Semula Sambungan HTTP

Pool Sambungan
// Node.js HTTP Agent dengan pengumpulan
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
});
// Gunakan agen dalam permintaan
fetch(url, { agent: httpsAgent });

Tetapan Sambungan

Parameter Disyorkan Rasional
maxSockets 50-100 Seimbangkan konkurensi dengan penggunaan sumber
maxFreeSockets 10-20 Simpan sambungan idle untuk digunakan semula
keepAliveTimeout 60000ms Padankan masa tamat pelayan

Operasi Batch

Menggabungkan Permintaan

Query Batch
// Daripada pelbagai permintaan
// GET /whales?asset=BTC
// GET /whales?asset=ETH
// GET /whales?asset=SOL
// Gunakan satu permintaan batch
GET /v1/whales?asset=BTC,ETH,SOL
// ~200ms dijimatkan berbanding 3 permintaan berurutan

Had Batch

  • Simbol maksimum setiap permintaan: 100
  • Julat masa maksimum: 365 hari
  • Keputusan maksimum: 10,000 baris

Pengoptimuman Query

Pengoptimuman Permintaan

  • Nyatakan medan — Minta hanya medan yang diperlukan
  • Gunakan penapis — Kurangkan saiz respons dengan penapis
  • Paginasi — Gunakan parameter limit, bukan offset
  • Jangka Masa — Minta hanya data yang anda perlukan
Query Dioptimumkan
// Kurang efisien: Banyak data
GET /v1/whales?lookback=90d&limit=10000
// Lebih efisien: Data khusus
GET /v1/whales?
asset=BTC&
metric=accumulation&
lookback=7d&
limit=100

Mampatan Respons

Mampatan Gzip

Mampatan Permintaan
// Dayakan mampatan dalam permintaan
fetch(url, {
headers: {
'Accept-Encoding': 'gzip, deflate'
}
});
// API secara automatik memampatkan jika disokong
// Pemampatan tipikal: pengurangan saiz 70-80%

Penjimatan Pemampatan

Jenis Data Tidak Dimampatkan Dimampatkan Penjimatan
Respons JSON 500KB 85KB 83%
Jadual Besar 2MB 350KB 82%

Corak Async/Selari

Permintaan Serentak

Permintaan Selari
// Tidak Efisien: Berurutan
const btc = await fetch('/whales/BTC');
const eth = await fetch('/whales/ETH');
const sol = await fetch('/whales/SOL');
// Jumlah masa: ~300ms
// Efisien: Selari
const [btc, eth, sol] = await Promise.all([
fetch('/whales/BTC'),
fetch('/whales/ETH'),
fetch('/whales/SOL')
]);
// Jumlah masa: ~100ms (3x lebih pantas!)

Metrik Prestasi

Metrik Utama

Metrik Sasaran Pengukuran
P50 Latensi <50ms Masa respons median
P95 Latensi <100ms Persentil ke-95
P99 Latensi <500ms Persentil ke-99
Throughput >1000 req/s Permintaan per saat

Pemantauan Prestasi

Pemantauan Prestasi
// Jejak masa respons
const start = performance.now();
const response = await fetch(url);
const duration = performance.now() - start;
// Log untuk analisis
console.log(`Permintaan mengambil masa ${duration}ms`);

Penanda Aras

Ujian Beban

Penanda aras integrasi anda untuk mengenal pasti kebuntuan:

  • Alat: Apache Bench, wrk, atau Locust
  • Uji dengan tahap keserentakan yang realistik
  • Ukur taburan latensi, bukan hanya purata
  • Uji dengan cache panas dan sejuk

Cadangan Pengoptimuman

Kemenangan Pantas

  1. Dayakan pengumpulan sambungan HTTP (peningkatan 1-5x)
  2. Laksanakan caching tempatan (10-50x untuk permintaan berulang)
  3. Gunakan operasi batch (pengurangan 2-5x dalam permintaan)
  4. Dayakan pemampatan gzip (pengurangan 3-5x dalam bandwidth)

Pengoptimuman Lanjutan

  1. Laksanakan caching CDN untuk data sejarah
  2. Gunakan pengumpulan sambungan pangkalan data untuk caching tempatan
  3. Laksanakan corak pemutus litar
  4. Gunakan respons streaming untuk set data besar

Capai Prestasi Maksimum

Smart Money API dibina untuk kelajuan. Laksanakan strategi pengoptimuman ini untuk latensi sub-100ms dan throughput maksimum.

Lihat Tahap Prestasi
Pelan Pro dan Enterprise termasuk ciri caching dan prestasi lanjutan.

Sumber Berkaitan

Mulakan percuma — 100 panggilan/hari, tiada kad

Dapatkan aliran paus langsung, pembiayaan, minat terbuka dan data on-chain merentasi 3 pertukaran dari satu API. Tahap percuma, tiada kad kredit, naik taraf bila-bila masa.

Mulakan percuma →
Cuba konsol API langsung → (tiada akaun diperlukan)