بهینه‌سازی عملکرد API و کاهش تاخیر

دستیابی به زمان پاسخ زیر 100 میلی‌ثانیه با Smart Money API. تسلط بر کش، اتصال‌های گروهی، عملیات دسته‌ای و بهینه‌سازی کوئری برای حداکثر توان عملیاتی.

منتشر شده در 21 مارس 2026 17 دقیقه مطالعه عملکرد

مرور کلی عملکرد

Smart Money API برای تاخیر کم و توان عملیاتی بالا بهینه‌سازی شده است. با پیاده‌سازی الگوهای توصیه‌شده در سمت ادغام خود، به حداکثر عملکرد دست یابید.

لایه‌های بهینه‌سازی عملکرد:

  • کش — کش محلی و CDN درخواست‌های مبدا را کاهش می‌دهد
  • اتصال‌های گروهی — استفاده مجدد از اتصال‌ها، کاهش سربار
  • عملیات دسته‌ای — ترکیب چندین درخواست در یک درخواست
  • بهینه‌سازی کوئری — تنها داده‌های مورد نیاز را درخواست کنید
  • ناهمزمان/موازی — پردازش چندین درخواست به طور همزمان

هدف عملکرد: تاخیر 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;
}

ابطال کش

  • داده‌های تجمع نهنگ: TTL 5 دقیقه
  • نرخ‌های تامین مالی: TTL 1 دقیقه
  • داده‌های OHLCV: TTL 1 ساعت
  • داده‌های تاریخی: TTL 24 ساعت
کلید API خود را در 30 ثانیه دریافت کنید

آماده ساخت هستید؟ یک کلید API رایگان دریافت کنید (100 درخواست در روز، بدون کارت) و شروع به کشیدن داده‌های زنده نهنگ، تامین مالی و زنجیره‌ای کنید.

دریافت کلید API →

اتصال‌های گروهی

استفاده مجدد از اتصال HTTP

گروه اتصال
// HTTP Agent در Node.js با گروه‌بندی
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
// استفاده از یک درخواست دسته‌ای
GET /v1/whales?asset=BTC,ETH,SOL
// ~200ms صرفه‌جویی در مقایسه با 3 درخواست متوالی

محدودیت‌های دسته‌ای

  • حداکثر نمادها در هر درخواست: 100
  • حداکثر بازه زمانی: 365 روز
  • حداکثر نتایج: 10,000 ردیف

بهینه‌سازی کوئری

بهینه‌سازی درخواست

  • تعیین فیلدها — تنها فیلدهای مورد نیاز را درخواست کنید
  • استفاده از فیلترها — کاهش حجم پاسخ با فیلترها
  • صفحه‌بندی — استفاده از پارامتر limit، نه offset
  • بازه‌های زمانی — تنها داده‌های مورد نیاز را درخواست کنید
کوئری بهینه‌شده
// کمتر کارآمد: داده‌های زیاد
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%

الگوهای Async/Parallel

درخواست‌های همزمان

درخواست‌های موازی
// ناکارآمد: ترتیبی
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 درخواست در ثانیه

پایش عملکرد

پایش عملکرد
// زمان پاسخ را ردیابی کنید
const start = performance.now();
const response = await fetch(url);
const duration = performance.now() - start;
// برای تحلیل ثبت کنید
console.log(`Request took ${duration}ms`);

معیارسنجی

تست بار

یکپارچه‌سازی خود را معیارسنجی کنید تا گلوگاه‌ها را شناسایی کنید:

  • ابزار: Apache Bench, wrk, یا Locust
  • با سطوح واقعی همزمانی تست کنید
  • توزیع تأخیر را اندازه بگیرید، نه فقط میانگین
  • با کش گرم و سرد تست کنید

توصیه‌های بهینه‌سازی

پیروزی‌های سریع

  1. فعال‌سازی اتصال HTTP pooling (1-5x بهبود)
  2. پیاده‌سازی کش محلی (10-50x برای درخواست‌های تکراری)
  3. استفاده از عملیات دسته‌ای (2-5x کاهش در درخواست‌ها)
  4. فعال‌سازی فشرده‌سازی gzip (3-5x کاهش پهنای باند)

بهینه‌سازی‌های پیشرفته

  1. پیاده‌سازی کش CDN برای داده‌های تاریخی
  2. استفاده از connection pool های پایگاه داده برای کش محلی
  3. پیاده‌سازی الگوی circuit breaker
  4. استفاده از پاسخ‌های جریانی برای مجموعه داده‌های بزرگ

دستیابی به حداکثر عملکرد

Smart Money API برای سرعت ساخته شده است. این استراتژی‌های بهینه‌سازی را برای تأخیر زیر 100ms و حداکثر توان عملیاتی پیاده‌سازی کنید.

مشاهده سطوح عملکرد
طرح‌های Pro و Enterprise شامل ویژگی‌های پیشرفته کش و عملکرد هستند.

منابع مرتبط

شروع رایگان — 100 فراخوانی/روز، بدون کارت

داده‌های جریان نهنگ‌ها، تأمین مالی، open interest و on-chain را در 3 صرافی از یک API دریافت کنید. سطح رایگان، بدون نیاز به کارت اعتباری، هر زمان ارتقا دهید.

شروع رایگان →
آزمایش کنسول زنده API → (نیاز به حساب ندارد)