Оптимізація продуктивності API та зниження затримок

Досягніть часу відповіді менше 100 мс за допомогою Smart Money API. Опануйте кешування, пулування з’єднань, пакетні операції та оптимізацію запитів для максимальної пропускної здатності.

Опубліковано 21 березня 2026 року 17 хв читання Продуктивність

Огляд продуктивності

Smart Money API оптимізовано для низької затримки та високої пропускної здатності. Досягніть максимальної продуктивності, реалізувавши рекомендовані шаблони на стороні інтеграції.

Рівні оптимізації продуктивності:

  • Кешування — Локальне та CDN кешування зменшує запити до джерела
  • Пулування з’єднань — Повторне використання з’єднань, зниження накладних витрат
  • Пакетні операції — Об’єднання кількох запитів в один
  • Оптимізація запитів — Запитуйте лише необхідні дані
  • Асинхронні/Паралельні — Обробка кількох запитів одночасно

Ціль продуктивності: P95 затримка <100 мс, P99 <500 мс, 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 60000мс Відповідає тайм-ауту сервера

Пакетні операції

Об’єднання запитів

Пакетний запит
// Замість кількох запитів
// GET /whales?asset=BTC
// GET /whales?asset=ETH
// GET /whales?asset=SOL
// Використовуйте один пакетний запит
GET /v1/whales?asset=BTC,ETH,SOL
// ~200мс зекономлено порівняно з 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%

Асинхронні/Паралельні Патерни

Конкурентні запити

Паралельні запити
// Неефективно: Послідовно
const btc = await fetch('/whales/BTC');
const eth = await fetch('/whales/ETH');
const sol = await fetch('/whales/SOL');
// Загальний час: ~300мс
// Ефективно: Паралельно
const [btc, eth, sol] = await Promise.all([
fetch('/whales/BTC'),
fetch('/whales/ETH'),
fetch('/whales/SOL')
]);
// Загальний час: ~100мс (у 3 рази швидше!)

Метрики продуктивності

Ключові метрики

Метрика Ціль Вимірювання
P50 Затримка <50мс Середній час відповіді
P95 Затримка <100мс 95-й процентиль
P99 Затримка <500мс 99-й процентиль
Пропускна здатність >1000 запитів/с Запитів за секунду

Моніторинг продуктивності

Моніторинг продуктивності
// Відстежуйте час відповіді
const start = performance.now();
const response = await fetch(url);
const duration = performance.now() - start;
// Записуйте для аналізу
console.log(`Запит виконано за ${duration}мс`);

Тестування продуктивності

Навантажувальне тестування

Протестуйте свою інтеграцію, щоб виявити вузькі місця:

  • Інструменти: Apache Bench, wrk або Locust
  • Тестуйте з реалістичним рівнем конкурентності
  • Вимірюйте розподіл затримок, а не лише середнє значення
  • Тестуйте з прогрітим та холодним кешем

Рекомендації з оптимізації

Швидкі перемоги

  1. Увімкніть пул HTTP-з'єднань (покращення в 1-5 разів)
  2. Реалізуйте локальне кешування (покращення в 10-50 разів для повторних запитів)
  3. Використовуйте пакетні операції (зменшення кількості запитів у 2-5 разів)
  4. Увімкніть стиснення gzip (зменшення витрати трафіку в 3-5 разів)

Просунуті оптимізації

  1. Реалізуйте кешування через CDN для історичних даних
  2. Використовуйте пули з'єднань з базою даних для локального кешування
  3. Реалізуйте патерн Circuit Breaker
  4. Використовуйте потокові відповіді для великих наборів даних

Досягнення максимальної продуктивності

Smart Money API створений для швидкості. Використовуйте ці стратегії оптимізації для затримок менше 100мс та максимальної пропускної здатності.

Переглянути рівні продуктивності
Плани Pro та Enterprise включають розширені функції кешування та продуктивності.

Схожі ресурси

Почніть безкоштовно — 100 викликів/день, без картки

Отримуйте дані про потоки китів, фінансування, відкритий інтерес та ончейн-дані з 3 бірж через один API. Безкоштовний тариф, без кредитної картки, оновлення будь-коли.

Почніть безкоштовно →
Спробуйте консоль API в реальному часі → (обліковий запис не потрібен)