// 04 · Latência do engine

Qual é a velocidade do engine Rust?

Medições com relógio monotônico em processo. Sem rede. Sem HTTP. Ciclos puros do engine. Medido em 2026-04-24, engine 0.4.48, {{n}} amostras.

Apenas o engine, não o wall time end-to-end

Esses números medem o caminho crítico do engine Rust, parse, state-cache escritas, pipeline completo, todos em processo, todos com relógio monotônico. NÃO incluem round-trip de rede, latência WS de mercado ou tempo de fill do broker. O lag de rede por mercado é medido separadamente como recv_wall_ns − state_cache_updated_ns (recv menos state-updated). Leia o documento Latency Matrix para o detalhamento completo.

p50
310 ns
p95
980 ns
p99
1,950 ns

Histograma sobre MarketState::update_ticker_owned amostras de 89,033 (engine 0.4.48), nanossegundos, relógio monotônico em processo

Pipeline completo do engine Rust

As sete métricas da Latency Matrix (engine 0.4.48). State escritas na escala de nanossegundos; parse + end-to-end na escala de microssegundos. Tudo em processo. Nada disso é rede.

métricanp50p99nota
state_ticker_ns89,033310 ns1.95 µsWrite de state-cache de um único ticker. A menor unidade de trabalho do engine: preço, volume e timestamp de um símbolo comprometidos no market state. Este é o número principal de 310 ns.
state_mark_price_ns1202.15 µs3.73 µsWrite de estado do mark price. Levemente mais pesado que um escrita de ticker: o mark price carrega campos adicionais (funding rate, index price) para o estado.
state_order_update_ns3,4583.69 µs13.86 µsWrite de estado do ciclo de vida de uma ordem: nova, parcialmente preenchida, preenchida, cancelada. Cada transição de status toca o order map e o índice de ordens por símbolo.
state_ob_snap_ns16,4064.44 µs17.42 µsWrite de snapshot completo do orderbook. Substitui todo o ladder bid/ask de um símbolo em uma operação atômica. Mais pesado que um delta porque reescreve a profundidade completa.
state_ob_delta_ns102,5495.51 µs16.34 µsDelta incremental do orderbook. Aplica a atualização de nível de preço de um lado ao ladder ao vivo. Mais barato que um snapshot; a maioria dos ticks são deltas.
parse_ns176,5551.76 µs77.95 µsParse completo de frame WS: decodificação JSON ou binária, roteamento de tipo de mensagem, lookup de símbolo. O engine faz parse de cada frame antes do state write. Este é o custo apenas de parse.
end_to_end_ns176,55514.40 µs248.96 µsPipeline end-to-end: parse + state write, o caminho crítico completo em processo do frame bruto ao market state atualizado. O número principal de 14,4 µs é este.

Expectativas por plano de hardware

O número principal de 310 ns é medido em um Intel Xeon 8369B fixado (plano A). Um p50 sub-microssegundo é a propriedade definidora do hardware de plano engine. Laptops limitados ou VMs compartilhadas podem ultrapassar 1 µs, o que reflete o hardware, não o engine.

planohardwareconfiguraçãop50p95
AIntel Xeon 8369B (Ice Lake-SP)Linux 5.15, núcleo fixado, governor de desempenho, Rust 1.78310 ns980 ns
BAMD EPYC 7763 / Xeon Gold 6338Linux 5.15+, governor de desempenho, Rust 1.78350–500 ns0.7–1.2 µs
CApple M2 / M3 MacBookmacOS 14+, arm64, Rust 1.78250–450 ns0.6–1.1 µs
DLaptop Intel i7-12700H / Ryzen 9 7945HXLinux/Win11, sem fixação, Rust 1.78400–650 ns0.8–1.4 µs

Reproduza isso em três comandos

O bench é um crate Rust autônomo. Não é necessário clonar a plataforma, sem serviços externos.

# 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

Tempo total de wall time: menos de 30 segundos em hardware plano A. O arnês criterion escreve results/state_ticker_ns.csv + results/summary.json. Metodologia completa no README do bench.

Entrar na comunidade
// Cookies
A Melaya usa um conjunto pequeno de cookies first-party estritamente necessários para te autenticar, manter sua sessão e proteger a plataforma de abusos. Sem cookies de publicidade, trackers cross-site ou analytics de terceiros por padrão. A lista completa de cookies está na nossa Política de Privacidade.