Melaya — Build AI agents for any job. Self-directed agentic platform for research, ops, reporting, and trading you run yourself, with your own exchange account and your approval on every order.

// 04 · Задержка движка

Насколько быстр Rust-движок?

Измерения внутрипроцессными монотонными часами. Без сети. Без HTTP. Чистые циклы движка. Измерено 2026-04-24, движок 0.4.48, {{n}} выборок.

Только движок, не сквозное время

Эти цифры измеряют горячий путь Rust-движка: разбор, запись в кэш состояния, полный конвейер, всё внутри процесса, все монотонные часы. Они НЕ включают сетевой круговой обход, задержку WS площадки или время исполнения ордера брокером. Сетевые задержки по площадкам измеряются отдельно как recv_wall_ns − state_cache_updated_ns (получено минус обновлено состояние). Читай документ «Матрица задержек» для полного описания.

p50
310 ns
p95
980 ns
p99
1,950 ns

Гистограмма по MarketState::update_ticker_owned выборкам 89,033 (движок 0.4.48), наносекунды, внутрипроцессные монотонные часы

Полный конвейер Rust-движка

Все семь метрик из матрицы задержек (движок 0.4.48). Запись состояния на наносекундной шкале; разбор и сквозная задержка на микросекундной шкале. Всё внутри процесса. Ничего сетевого.

метрикаnp50p99примечание
state_ticker_ns89,033310 ns1.95 µsЕдиничная запись тикера в кэш состояния. Наименьшая единица работы движка: цена, объём и метка времени одного символа записываются в рыночное состояние. Это заявленный показатель 310 нс.
state_mark_price_ns1202.15 µs3.73 µsЗапись марковой цены в состояние. Чуть тяжелее записи тикера: марковая цена несёт дополнительные поля (ставка финансирования, индексная цена) в состояние.
state_order_update_ns3,4583.69 µs13.86 µsЗапись жизненного цикла ордера в состояние: новый, частично исполненный, исполненный, отменённый. Каждый переход статуса затрагивает карту ордеров и индекс ордеров по символу.
state_ob_snap_ns16,4064.44 µs17.42 µsЗапись полного снимка книги ордеров. Заменяет всю лестницу заявок на покупку и продажу для символа в одной атомарной операции. Тяжелее дельты, так как перезаписывает полную глубину.
state_ob_delta_ns102,5495.51 µs16.34 µsИнкрементная дельта книги ордеров. Применяет обновление ценового уровня одной стороны к живой лестнице. Дешевле снимка; большинство тиков, дельты.
parse_ns176,5551.76 µs77.95 µsПолный разбор WS-фрейма: декодирование JSON или бинарных данных, маршрутизация типа сообщения, поиск символа. Движок разбирает каждый фрейм перед записью состояния. Это стоимость только разбора.
end_to_end_ns176,55514.40 µs248.96 µsСквозной конвейер: разбор и запись состояния, полный внутрипроцессный горячий путь от сырого фрейма до обновлённого рыночного состояния. Заявленный показатель 14.4 мкс, это данное число.

Ожидания по аппаратным тарифам

Заявленный показатель 310 нс измерен на зафиксированном Intel Xeon 8369B (тариф A). Субмикросекундный p50, определяющее свойство аппаратного обеспечения уровня движка. На ограниченных по мощности ноутбуках или виртуальных машинах с разделяемыми ресурсами p50 может превысить 1 мкс, это отражает аппаратное обеспечение, а не движок.

тарифаппаратное обеспечениеконфигурацияp50p95
AIntel Xeon 8369B (Ice Lake-SP)Linux 5.15, зафиксированное ядро, режим производительности, Rust 1.78310 ns980 ns
BAMD EPYC 7763 / Xeon Gold 6338Linux 5.15+, режим производительности, Rust 1.78350–500 ns0.7–1.2 µs
CApple M2 / M3 MacBookmacOS 14+, arm64, Rust 1.78250–450 ns0.6–1.1 µs
DНоутбук Intel i7-12700H / Ryzen 9 7945HXLinux/Win11, без фиксации ядра, Rust 1.78400–650 ns0.8–1.4 µs

Воспроизведи это тремя командами

Бенчмарк, это самодостаточный Rust-крейт. Клон платформы не требуется, внешние сервисы не нужны.

# 1. Clone the public OSS repo
git clone https://github.com/melaya-labs/melaya.git
cd melaya/benchmarks/engine

# 2. Run the criterion bench (~100k iterations, ~30 seconds)
cargo bench --bench state_ticker

# 3. Read the per-iteration CSV + summary
cat results/state_ticker_ns.csv | head
cat results/summary.json

Общее время: менее 30 секунд на аппаратном обеспечении тарифа A. Наборщик criterion записывает results/state_ticker_ns.csv и results/summary.json. Полная методология в README бенчмарка.

Вступить в сообщество