Otimizando um decodificador AV1 Rust: Evitando zeragens desnecessárias e otimizando comparações de struct

2025-05-22
Otimizando um decodificador AV1 Rust: Evitando zeragens desnecessárias e otimizando comparações de struct

Comparando o desempenho do decodificador AV1 baseado em Rust, rav1d, e o decodificador baseado em C, dav1d, o autor, usando um profiler de amostragem, identificou dois gargalos de desempenho. O primeiro foi o zeramento desnecessário de um buffer no rav1d em arquitetura ARM, levando à degradação do desempenho. O segundo foi uma implementação ineficiente de comparações de struct no rav1d. Usando `MaybeUninit` para evitar zeragens desnecessárias e otimizando comparações de struct, o autor melhorou o desempenho do rav1d em quase 2%.

Desenvolvimento Decodificador AV1