Tối ưu hóa Hiệu suất API và Giảm Độ trễ

Đạt thời gian phản hồi dưới 100ms với Smart Money API. Nắm vững caching, kết nối pooling, thao tác batch và tối ưu hóa truy vấn để đạt thông lượng tối đa.

Xuất bản ngày 21 tháng 3 năm 2026 17 phút đọc Hiệu suất

Tổng quan về Hiệu suất

Smart Money API được tối ưu hóa cho độ trễ thấp và thông lượng cao. Đạt hiệu suất tối đa bằng cách triển khai các mẫu được khuyến nghị trên phía tích hợp của bạn.

Các lớp tối ưu hóa hiệu suất:

  • Caching — Caching cục bộ và CDN giảm yêu cầu gốc
  • Kết nối Pooling — Tái sử dụng kết nối, giảm chi phí
  • Thao tác Batch — Kết hợp nhiều yêu cầu thành một
  • Tối ưu hóa Truy vấn — Chỉ yêu cầu dữ liệu cần thiết
  • Async/Song song — Xử lý nhiều yêu cầu đồng thời

Mục tiêu Hiệu suất: Độ trễ P95 <100ms, P99 <500ms, thời gian hoạt động 99.9% với tỷ lệ lỗi <0.1%.

Chiến lược Caching

Caching Phản hồi

Cache cục bộ
// Tôn trọng tiêu đề 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;
}

Hủy Cache

  • Dữ liệu tích lũy cá voi: TTL 5 phút
  • Tỷ lệ funding: TTL 1 phút
  • Dữ liệu OHLCV: TTL 1 giờ
  • Dữ liệu lịch sử: TTL 24 giờ
Nhận khóa API của bạn trong 30 giây

Sẵn sàng xây dựng? Lấy khóa API miễn phí (100 cuộc gọi/ngày, không cần thẻ) và bắt đầu kéo dữ liệu cá voi, funding và on-chain trực tiếp.

Nhận khóa API của bạn →

Kết nối Pooling

Tái sử dụng Kết nối HTTP

Pool Kết nối
// HTTP Agent của Node.js với 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
});
// Sử dụng agent trong các yêu cầu
fetch(url, { agent: httpsAgent });

Cài đặt Kết nối

Tham số Khuyến nghị Lý do
maxSockets 50-100 Cân bằng đồng thời với việc sử dụng tài nguyên
maxFreeSockets 10-20 Giữ các kết nối nhàn rỗi để tái sử dụng
keepAliveTimeout 60000ms Khớp với thời gian chờ của máy chủ

Thao tác Batch

Kết hợp Yêu cầu

Truy vấn Batch
// Thay vì nhiều yêu cầu
// GET /whales?asset=BTC
// GET /whales?asset=ETH
// GET /whales?asset=SOL
// Sử dụng một yêu cầu batch
GET /v1/whales?asset=BTC,ETH,SOL
// ~200ms tiết kiệm so với 3 yêu cầu tuần tự

Giới hạn Batch

  • Số lượng ký hiệu tối đa mỗi yêu cầu: 100
  • Phạm vi thời gian tối đa: 365 ngày
  • Số lượng kết quả tối đa: 10,000 hàng

Tối ưu hóa Truy vấn

Tối ưu hóa Yêu cầu

  • Chỉ định trường — Chỉ yêu cầu các trường cần thiết
  • Sử dụng bộ lọc — Giảm kích thước phản hồi với bộ lọc
  • Phân trang — Sử dụng tham số limit, không phải offset
  • Khung thời gian — Chỉ yêu cầu dữ liệu bạn cần
Truy vấn Tối ưu hóa
// Kém hiệu quả: Nhiều dữ liệu
GET /v1/whales?lookback=90d&limit=10000
// Hiệu quả hơn: Dữ liệu cụ thể
GET /v1/whales?
asset=BTC&
metric=accumulation&
lookback=7d&
limit=100

Nén Phản hồi

Nén Gzip

Yêu cầu Nén
// Bật nén trong các yêu cầu
fetch(url, {
headers: {
'Accept-Encoding': 'gzip, deflate'
}
});
// API tự động nén nếu được hỗ trợ
// Giảm kích thước điển hình: 70-80%

Tiết kiệm do nén

Loại dữ liệu Không nén Đã nén Tiết kiệm
Phản hồi JSON 500KB 85KB 83%
Bảng lớn 2MB 350KB 82%

Mẫu Async/Song song

Yêu cầu đồng thời

Yêu cầu song song
// Không hiệu quả: Tuần tự
const btc = await fetch('/whales/BTC');
const eth = await fetch('/whales/ETH');
const sol = await fetch('/whales/SOL');
// Tổng thời gian: ~300ms
// Hiệu quả: Song song
const [btc, eth, sol] = await Promise.all([
fetch('/whales/BTC'),
fetch('/whales/ETH'),
fetch('/whales/SOL')
]);
// Tổng thời gian: ~100ms (nhanh hơn 3 lần!)

Chỉ số hiệu suất

Chỉ số chính

Chỉ số Mục tiêu Đo lường
Độ trễ P50 <50ms Thời gian phản hồi trung bình
Độ trễ P95 <100ms Phân vị thứ 95
Độ trễ P99 <500ms Phân vị thứ 99
Thông lượng >1000 req/s Yêu cầu mỗi giây

Giám sát hiệu suất

Giám sát hiệu suất
// Theo dõi thời gian phản hồi
const start = performance.now();
const response = await fetch(url);
const duration = performance.now() - start;
// Ghi nhật ký để phân tích
console.log(`Yêu cầu mất ${duration}ms`);

Đo điểm chuẩn

Kiểm tra tải

Đo điểm chuẩn tích hợp của bạn để xác định nút thắt cổ chai:

  • Công cụ: Apache Bench, wrk hoặc Locust
  • Kiểm tra với mức độ đồng thời thực tế
  • Đo lường phân phối độ trễ, không chỉ trung bình
  • Kiểm tra với bộ nhớ cache nóng và lạnh

Khuyến nghị tối ưu hóa

Cải thiện nhanh

  1. Bật kết nối HTTP pooling (cải thiện 1-5 lần)
  2. Triển khai bộ nhớ cache cục bộ (10-50 lần cho yêu cầu lặp lại)
  3. Sử dụng thao tác hàng loạt (giảm 2-5 lần yêu cầu)
  4. Bật nén gzip (giảm 3-5 lần băng thông)

Tối ưu hóa nâng cao

  1. Triển khai bộ nhớ cache CDN cho dữ liệu lịch sử
  2. Sử dụng kết nối cơ sở dữ liệu pooling cho bộ nhớ cache cục bộ
  3. Triển khai mẫu circuit breaker
  4. Sử dụng phản hồi streaming cho tập dữ liệu lớn

Đạt hiệu suất tối đa

Smart Money API được xây dựng cho tốc độ. Triển khai các chiến lược tối ưu hóa này để đạt độ trễ dưới 100ms và thông lượng tối đa.

Xem các cấp độ hiệu suất
Gói Pro và Enterprise bao gồm các tính năng bộ nhớ cache và hiệu suất nâng cao.

Tài nguyên liên quan

Bắt đầu miễn phí — 100 cuộc gọi/ngày, không cần thẻ

Nhận dòng tiền cá voi trực tiếp, funding, open interest và dữ liệu on-chain từ 3 sàn giao dịch từ một API. Miễn phí, không cần thẻ tín dụng, nâng cấp bất cứ lúc nào.

Bắt đầu miễn phí →
Dùng thử bảng điều khiển API trực tiếp → (không cần tài khoản)