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 · Latency ng makina

Gaano kabilis ang makina ng Rust?

Mga pagsukat ng monotonic na orasan na in-process. Walang network. Walang HTTP. Purong mga siklo ng makina. Sinukat noong 2026-04-24, makina 0.4.48, {{n}} sample.

Makina lamang, hindi end-to-end na oras ng dingding

Sinusukat ng mga numerong ito ang mainit na landas ng makina ng Rust, pag-parse, mga pagsusulat ng estado-cache, buong pipeline, lahat in-process, lahat monotonic na orasan. HINDI kasama ang round-trip ng network, latency ng WS ng lugar, o oras ng fill ng broker. Ang lag ng network bawat lugar ay sinusukat nang hiwalay bilang recv_wall_ns − state_cache_updated_ns (recv minus state-updated). Basahin ang dokumento ng Latency Matrix para sa buong pagpapaliwanag.

p50
310 ns
p95
980 ns
p99
1,950 ns

Histogram sa loob ng MarketState::update_ticker_owned sample ng 89,033 (makina 0.4.48), nanosegundo, in-process monotonic na orasan

Buong daloy ng proseso ng makina ng Rust

Lahat ng pitong sukatan mula sa Latency Matrix (makina 0.4.48). Mga pagsusulat ng estado sa sukat ng nanosegundo; pag-parse + end-to-end sa sukat ng microsegundo. Lahat in-process. Wala sa mga ito ay network.

sukatannp50p99tala
state_ticker_ns89,033310 ns1.95 µsIsang pagsusulat ng estado-cache ng ticker. Ang pinakamaliit na yunit ng gawain ng makina, isang presyo, dami, at timestamp ng simbolo na na-commit sa estado ng palitan. Ito ang headline na 310 ns.
state_mark_price_ns1202.15 µs3.73 µsPagsusulat ng estado ng mark price. Bahagyang mas mabigat kaysa sa pagsusulat ng ticker, ang mark price ay nagdadala ng karagdagang mga field (funding rate, index price) sa estado.
state_order_update_ns3,4583.69 µs13.86 µsPagsusulat ng estado ng lifecycle ng order: bago, bahagyang napuno, napuno, nakansela. Ang bawat paglipat ng katayuan ay humahawak ng mapa ng order at ng index ng order bawat simbolo.
state_ob_snap_ns16,4064.44 µs17.42 µsPagsusulat ng buong snapshot ng orderbook. Pinapalitan ang buong hagdan ng bid/ask para sa isang simbolo sa isang atomic na operasyon. Mas mabigat kaysa sa delta dahil isinusulat muli ang buong lalim.
state_ob_delta_ns102,5495.51 µs16.34 µsIncremental na delta ng orderbook. Inilalapat ang update ng antas ng presyo ng isang gilid sa buhay na hagdan. Mas mura kaysa sa snapshot; karamihan ng mga tick ay mga delta.
parse_ns176,5551.76 µs77.95 µsBuong pag-parse ng frame ng WS: JSON o binary na decode, routing ng uri ng mensahe, paghahanap ng simbolo. Ini-parse ng makina ang bawat frame bago ang pagsusulat ng estado. Ito ang gastos ng pag-parse lamang.
end_to_end_ns176,55514.40 µs248.96 µsPipeline na end-to-end: pag-parse + pagsusulat ng estado, ang buong in-process na mainit na landas mula sa raw na frame hanggang sa na-update na estado ng palitan. Ang headline na 14.4 µs ay ang numerong ito.

Mga inaasahan sa antas ng hardware

Ang headline na 310 ns ay sinusukat sa isang naka-pin na Intel Xeon 8369B (antas A). Ang sub-microsegundo na p50 ang nagtatakda ng katangian ng hardware ng antas ng makina. Ang mga naka-throttle na laptop o mga shared na VM ay maaaring lumampas sa 1 µs, na sumasalamin sa hardware, hindi sa makina.

antaskagamitanpagsasaayosp50p95
AIntel Xeon 8369B (Ice Lake-SP)Linux 5.15, naka-pin na core, performance governor, Rust 1.78310 ns980 ns
BAMD EPYC 7763 / Xeon Gold 6338Linux 5.15+, tagapamahala ng pagganap, Rust 1.78350–500 ns0.7–1.2 µs
CApple M2 / M3 MacBookmacOS 14+, arm64, Rust 1.78250–450 ns0.6–1.1 µs
DIntel i7-12700H / Ryzen 9 7945HX laptopLinux/Win11, hindi naka-pin, Rust 1.78400–650 ns0.8–1.4 µs

Ulitin mo ito sa tatlong utos

Ang bench ay isang self-contained na crate ng Rust. Walang kinakailangang clone ng plataporma, walang mga panlabas na serbisyo.

# 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

Kabuuang oras ng dingding: wala pang 30 segundo sa hardware ng antas-A. Ang harness ng criterion ay sumusulat ng results/state_ticker_ns.csv + results/summary.json. Buong metodolohiya sa README ng bench.

Sumali sa komunidad