#performance

7 artigos marcados com essa tag.

Rinha de Backend 2026: do código à nota oficial

Sexto artigo da série. O Dockerfile multi-stage que embute os 3M de refs, o target-cpu que dá 16× i16 por instrução, um segfault que só existe sob emulação QEMU e a imagem que nasceu privada e derrubou a inscrição. O caminho que transformou o brute force em -6000 oficial.

Rinha de Backend 2026: o VP-Tree exato que saiu do piso

Sétimo artigo da série. De -6000 (penúltimo) para 3.788 (#111 de 228) sem tocar numa linha da classificação. O VP-Tree exato, a poda que parecia exata mas não era — um epsilon 5 ordens de grandeza pequeno demais — e a matemática inteira que provou exatidão para queries que eu nunca testei.

Rinha de Backend 2026: a busca brute force em 3 milhões de vetores

Quinto artigo da série. mmap dos 84 MB de refs.i16.bin, scan completo a cada requisição, top-5 num array de stack, zero alocação no hot path — e o veredito oficial: último lugar, score mínimo, e por que isso era exatamente o plano.

Rinha de Backend 2026: quantizando 298 MB de JSON em 87 MB de i16

Quarto artigo da série. O preprocess que tira o references.json.gz do runtime, comprime cada vetor de 14 dimensões em 28 bytes de i16, e ainda devolve uma layer Docker reprodutível e cacheável.

Rinha de Backend 2026: vetorizando o payload em 14 dimensões

Terceiro artigo da série. A função pura que transforma a transação em um vetor [f32; 14], com parser ISO manual, tabela de MCC hardcoded e os dois exemplos do regulamento como gabarito de teste.

Rinha de Backend 2026: a matriz que travou as decisões antes do código

Segundo artigo da série. Antes de escrever Rust, a conta de memória eliminou metade das opções: axum como HTTP, quantização i16 obrigatória, preprocess em build-time e brute force SIMD como baseline.

Rinha de Backend 2026: o problema real não é a API

Primeiro artigo da minha jornada na Rinha de Backend 2026. Rust, busca vetorial, 350 MB de memória e o porquê de começar pelo brute force.