پرش به محتوای اصلی
رؤوفResearchOS
فارسی
سیدنی، استرالیازمان کنونی سیدنی—
برای بستن این پنجره، کلید Escape را فشار دهید.

مهندسی

NanoMatch

NanoMatch دفتر سفارش‌های محدود و موتور تطبیق پُرکارایی با C++20 است. عملیات اصلی یک بازار مالی را شبیه‌سازی می‌کند و سفارش‌های خرید و فروش را با اولویت قیمت و زمان، با میلیون‌ها عملیات در ثانیه، تطبیق می‌دهد.

  • C++20
  • CMake
  • Google Test
  • معاملات پربسامد
  • برنامه‌نویسی سامانه
هویت بصری پروژهثابت

۰۱ / نمای کلی

فناوری‌های مستند پروژه
  • ۰۱C++20
  • ۰۲CMake 3.20+
  • ۰۳Google Test 1.17
  • ۰۴GitHub Actions CI/CD
  • ۰۵AddressSanitizer
  • ۰۶UBSan

مسئله

بازارهای مالی به تطبیق سفارش با تأخیر بسیار کم نیاز دارند. درک این موتورها در سطح سامانه مستلزم ساخت نمونه‌ای از صفر، با محدودیت‌های واقعی کارایی است.

نمای کلی راهکار

  1. تطبیق با اولویت قیمت و زمان FIFO برای سفارش‌های Limit، Market، IOC و FOK پیاده شد.
  2. لغو و تغییر سفارش با پیچیدگی O(1) و نمایهٔ جدول هش طراحی شد.
  3. تخصیص‌دهندهٔ حافظهٔ استخری، سربار heap را در مسیر پرتکرار حذف می‌کند.
  4. پشتیبانی چند ابزار مالی با دفتر سفارش مستقل برای هر نماد اضافه شد.

۰۲ / شواهد

شواهد و راستی‌آزمایی

  • توان عملیاتی: 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 پس از هر ارسال کد.
  • بدون وابستگی بیرونی هنگام اجرا.

جست‌وجو

پروژه، مقاله، نوشته یا صفحه‌ای را پیدا کنید.

۳۰ / ۴۱ · نتایج جست‌وجو

↑ ↓ ناوبری فضای کارEnter باز کردنEsc بستن