Optimización del rendimiento de la API y reducción de latencia

Logra tiempos de respuesta inferiores a 100ms con Smart Money API. Domina el caché, la agrupación de conexiones, las operaciones por lotes y la optimización de consultas para un rendimiento máximo.

Publicado el 21 de marzo de 2026 17 min de lectura Rendimiento

Resumen de rendimiento

Smart Money API está optimizado para baja latencia y alto rendimiento. Logra el máximo rendimiento implementando los patrones recomendados en tu integración.

Capas de optimización de rendimiento:

  • Caché — El caché local y de CDN reduce las solicitudes al origen
  • Agrupación de conexiones — Reutiliza conexiones, reduce la sobrecarga
  • Operaciones por lotes — Combina múltiples solicitudes en una
  • Optimización de consultas — Solicita solo los datos necesarios
  • Asíncrono/Paralelo — Procesa múltiples solicitudes simultáneamente

Objetivo de rendimiento: Latencia P95 <100ms, P99 <500ms, 99.9% de disponibilidad con <0.1% de tasa de error.

Estrategias de caché

Caché de respuestas

Caché local
// Respeta las cabeceras 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;
}

Invalidación de caché

  • Datos de acumulación de ballenas: TTL de 5 minutos
  • Tasas de financiación: TTL de 1 minuto
  • Datos OHLCV: TTL de 1 hora
  • Datos históricos: TTL de 24 horas
Obtén tu clave API en 30 segundos

¿Listo para construir? Obtén una clave API gratuita (200 llamadas/día, sin tarjeta) y comienza a obtener datos en vivo de ballenas, financiación y on-chain.

Obtén tu clave API →

Agrupación de conexiones

Reutilización de conexiones HTTP

Grupo de conexiones
// Agente HTTP de Node.js con agrupación
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
});
// Usa agentes en las solicitudes
fetch(url, { agent: httpsAgent });

Configuración de conexión

Parámetro Recomendado Razón
maxSockets 50-100 Equilibra concurrencia con uso de recursos
maxFreeSockets 10-20 Mantiene conexiones inactivas para reutilización
keepAliveTimeout 60000ms Coincide con el tiempo de espera del servidor

Operaciones por lotes

Combinación de solicitudes

Consulta por lotes
// En lugar de múltiples solicitudes
// GET /whales?asset=BTC
// GET /whales?asset=ETH
// GET /whales?asset=SOL
// Usa una solicitud por lotes
GET /v1/whales?asset=BTC,ETH,SOL
// ~200ms ahorrados vs 3 solicitudes secuenciales

Límites por lotes

  • Máximo de símbolos por solicitud: 100
  • Máximo rango de tiempo: 365 días
  • Máximo de resultados: 10,000 filas

Optimización de consultas

Optimización de solicitudes

  • Especifica campos — Solicita solo los campos necesarios
  • Usa filtros — Reduce el tamaño de la respuesta con filtros
  • Paginación — Usa el parámetro limit, no offset
  • Intervalos de tiempo — Solicita solo los datos que necesitas
Consulta optimizada
// Menos eficiente: Muchos datos
GET /v1/whales?lookback=90d&limit=10000
// Más eficiente: Datos específicos
GET /v1/whales?
asset=BTC&
metric=accumulation&
lookback=7d&
limit=100

Compresión de respuesta

Compresión Gzip

Solicitud de compresión
// Habilita la compresión en las solicitudes
fetch(url, {
headers: {
'Accept-Encoding': 'gzip, deflate'
}
});
// La API comprime automáticamente si es compatible
// Compresión típica: reducción del 70-80% en tamaño

Ahorros por Compresión

Tipo de Datos Sin Comprimir Comprimido Ahorros
Respuestas JSON 500KB 85KB 83%
Tablas grandes 2MB 350KB 82%

Patrones Async/Paralelos

Solicitudes Concurrentes

Solicitudes Paralelas
// Ineficiente: Secuencial
const btc = await fetch('/whales/BTC');
const eth = await fetch('/whales/ETH');
const sol = await fetch('/whales/SOL');
// Tiempo total: ~300ms
// Eficiente: Paralelo
const [btc, eth, sol] = await Promise.all([
fetch('/whales/BTC'),
fetch('/whales/ETH'),
fetch('/whales/SOL')
]);
// Tiempo total: ~100ms (¡3 veces más rápido!)

Métricas de Rendimiento

Métricas Clave

Métrica Objetivo Medición
Latencia P50 <50ms Tiempo de respuesta mediano
Latencia P95 <100ms Percentil 95
Latencia P99 <500ms Percentil 99
Rendimiento >1000 req/s Solicitudes por segundo

Monitoreo de Rendimiento

Monitoreo de Rendimiento
// Registrar tiempo de respuesta
const start = performance.now();
const response = await fetch(url);
const duration = performance.now() - start;
// Registrar para análisis
console.log(`La solicitud tomó ${duration}ms`);

Evaluación Comparativa

Pruebas de Carga

Evalúa tu integración para identificar cuellos de botella:

  • Herramientas: Apache Bench, wrk o Locust
  • Prueba con niveles de concurrencia realistas
  • Mide la distribución de latencia, no solo el promedio
  • Prueba con caché caliente y fría

Recomendaciones de Optimización

Mejoras Rápidas

  1. Habilita agrupación de conexiones HTTP (mejora de 1-5x)
  2. Implementa caché local (10-50x para solicitudes repetidas)
  3. Usa operaciones por lotes (reducción de 2-5x en solicitudes)
  4. Habilita compresión gzip (reducción de 3-5x en ancho de banda)

Optimizaciones Avanzadas

  1. Implementa caché CDN para datos históricos
  2. Usa agrupaciones de conexiones a BD para caché local
  3. Implementa el patrón de cortocircuito
  4. Usa respuestas en flujo para conjuntos de datos grandes

Alcanza el Máximo Rendimiento

Smart Money API está construida para velocidad. Implementa estas estrategias de optimización para latencias menores a 100ms y máximo rendimiento.

Ver Niveles de Rendimiento
Los planes Pro y Enterprise incluyen funciones avanzadas de caché y rendimiento.

Recursos Relacionados

Comienza gratis — 200 llamadas/día, sin tarjeta

Obtén flujo de ballenas, financiamiento, interés abierto y datos on-chain de 3 exchanges desde una API. Plan gratuito, sin tarjeta de crédito, actualiza cuando quieras.

Comienza gratis →
Prueba la consola de API en vivo → (no se necesita cuenta)