NanoMatch
NanoMatch دفتر أوامر محددة السعر ومحرك مطابقة عالي الأداء بلغة C++20، يحاكي العمليات الأساسية للبورصة ويطابق أوامر الشراء والبيع بأولوية السعر والوقت بملايين العمليات في الثانية.
٠١ / نظرة عامة
- ٠١C++20
- ٠٢CMake 3.20+
- ٠٣Google Test 1.17
- ٠٤GitHub Actions CI/CD
- ٠٥AddressSanitizer
- ٠٦UBSan
المشكلة
تحتاج البورصات مطابقة أوامر بزمن استجابة منخفض جدًا. يتطلب فهمها على مستوى الأنظمة بناء محرك من الصفر بقيود أداء واقعية.
نظرة عامة على الحل
- تنفيذ مطابقة بأولوية السعر والوقت FIFO لأوامر Limit وMarket وIOC وFOK.
- تصميم إلغاء وتعديل أوامر بتعقيد O(1) عبر فهرسة جدول التجزئة.
- تخصيص مجمّع ذاكرة يلغي كلفة تخصيص heap في المسار الساخن.
- دعم أدوات مالية متعددة بدفتر أوامر مستقل لكل رمز.
٠٢ / الأدلة
الإثبات والتحقق
- الإنتاجية: 1M+ أمر في الثانية، في اختبار اصطناعي أحادي الخيط.
- مجموعة اختبارات شاملة مع قياسات زمن استجابة p50/p99.
- نجاح 60+ اختبار وحدة عبر 18 مجموعة.
- تشغيل ASan وUBSan وcppcheck وclang-format في CI عند كل دفع.
٠٣ / المنهجية
البناء
مكدس التقنيات
- C++20
- CMake 3.20+
- Google Test 1.17
- GitHub Actions CI/CD
- AddressSanitizer
- UBSan
- مطابقة بأولوية السعر والوقت FIFO.
- 4 أنواع أوامر: Limit وMarket وIOC وFill-or-Kill.
- إلغاء وتعديل O(1) باستخدام جدول تجزئة.
- مخصّص مجمّع ذاكرة يلغي كلفة تخصيص heap.
الأمان
- AddressSanitizer وUndefinedBehaviorSanitizer في CI.
- 60+ اختبار وحدة عبر 18 مجموعة.
- تحليل cppcheck الساكن عند كل دفع.
- دون اعتماديات خارجية وقت التشغيل.