Deixando minha build de debug 100x mais rápida: SIMD e silício dedicado ao resgate

2025-02-18

Ao desenvolver um aplicativo torrent baseado em C, o autor encontrou um tempo de inicialização de build de debug lento (20-30 segundos). Isso se devia principalmente à verificação de valores de hash SHA1 para cada parte do arquivo baixado na inicialização do programa, significativamente reduzida pelo Address Sanitizer no modo de depuração. O artigo explora várias técnicas de otimização, incluindo o uso de instruções SIMD e do hardware de aceleração SHA dedicado da CPU. Em última análise, usando o conjunto de instruções de extensão SHA da Intel, o tempo de inicialização foi reduzido para 866,9 milissegundos, obtendo uma melhoria de desempenho de 100 vezes. O artigo detalha a implementação e a comparação de desempenho de várias abordagens de otimização, discutindo a otimização do compilador e o impacto da E/S de disco.

Desenvolvimento