تحسين أداء وحدات 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 في 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 صف

تحسين الاستعلامات

تحسين الطلب

  • تحديد الحقول — اطلب فقط الحقول المطلوبة
  • استخدم المرشحات — قلل حجم الاستجابة باستخدام المرشحات
  • ترقيم الصفحات — استخدم معلمة الحد، وليس الإزاحة
  • الإطارات الزمنية — اطلب فقط البيانات التي تحتاجها
استعلام مُحسّن
// أقل كفاءة: الكثير من البيانات
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 مللي ثانية (أسرع بثلاث مرات!)

مقاييس الأداء

المقاييس الرئيسية

المقياس الهدف القياس
زمن الوصول P50 <50ms متوسط وقت الاستجابة
زمن الوصول P95 <100ms النسبة المئوية 95
زمن الوصول P99 <500ms النسبة المئوية 99
الإنتاجية >1000 طلب/ثانية الطلبات في الثانية

مراقبة الأداء

مراقبة الأداء
// تتبع وقت الاستجابة
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 (تحسن من 1-5 مرات)
  2. قم بتنفيذ التخزين المؤقت المحلي (10-50 مرة للطلبات المتكررة)
  3. استخدم العمليات المجمعة (تقليل الطلبات بمقدار 2-5 مرات)
  4. قم بتمكين ضغط gzip (تقليل عرض النطاق الترددي بمقدار 3-5 مرات)

تحسينات متقدمة

  1. قم بتنفيذ تخزين CDN المؤقت للبيانات التاريخية
  2. استخدم تجمعات اتصالات قاعدة البيانات للتخزين المؤقت المحلي
  3. قم بتنفيذ نمط قاطع الدائرة
  4. استخدم استجابات البث للبيانات الكبيرة

تحقيق أقصى أداء

تم بناء Smart Money API للسرعة. قم بتنفيذ هذه الاستراتيجيات التحسينية لتحقيق زمن وصول أقل من 100 مللي ثانية وأقصى إنتاجية.

عرض مستويات الأداء
تتضمن الخطط Pro و Enterprise ميزات التخزين المؤقت والأداء المتقدمة.

موارد ذات صلة

ابدأ مجانًا — 100 استدعاء/يوم، بدون بطاقة

احصل على تدفق الحيتان المباشر، والتمويل، والاهتمام المفتوح وبيانات السلسلة عبر 3 بورصات من واجهة برمجة تطبيقات واحدة. مستوى مجاني، بدون بطاقة ائتمان، ترقية في أي وقت.

ابدأ مجانًا →
جرب وحدة تحكم واجهة برمجة التطبيقات المباشرة → (لا حاجة لحساب)