Parece que este serviço está em espera
Vou otimizar código em C e CPP para desempenho e baixa latência
Paquistão
Engenheiro de Sistemas de Baixo Nível e Performance
Sobre este Serviço
Seu código em C/C++ está correto, mas não atinge a latência, throughput ou tempo de execução desejados?
Primeiro faço o perfil, isolando onde a CPU realmente gasta tempo, depois otimizo o gargalo medido e verifico o resultado com benchmarks reproduzíveis antes/depois.
Eu trabalho em:
- Cache da CPU e layout de memória: SoA vs AoS, alinhamento, alocação em arena, redução de churn no heap
- SIMD/vectorização: AVX2, AVX-512, ARM NEON
- Multithreading, atomics, contenção de lock e false sharing
- Inspeção de disassembly, vetorização do compilador e inline asm direcionado quando justificado
Ferramentas: perf, FlameGraph, Callgrind, Google Benchmark, Compiler Explorer
Os entregáveis incluem um patch/commit limpo no Git, evidências de benchmark e notas técnicas. O código modificado é verificado com ASan/UBSan onde suportado e mantido livre de avisos sob flags de compilador rigorosos. Seu código permanece privado e nunca é colado em ferramentas públicas. NDA é bem-vindo.
Antes de fazer seu pedido, sinta-se à vontade para enviar seu benchmark, saída do perf ou trecho de código relevante. Revisarei o contexto e confirmarei se a carga de trabalho é adequada e qual escopo faz sentido.
Tecnologia de desenvolvimento:
C/C++
Meu portfólio
Perguntas frequentes
Tradução automática
Como você sabe que a aceleração é real e não ruído do benchmark?
Uso medições repetidas sob condições controladas, com afinidade/isolamento de CPU onde a plataforma suporta. Reporto resultados reproduzíveis antes/depois, ao invés de uma única melhor execução, e as afirmações de desempenho estão vinculadas à carga de trabalho e comando de benchmark acordados.
E se meu código não puder ser vetorizado com AVX2, AVX-512 ou NEON?
Então, não vou forçar SIMD. Se ramificações, dependências, alinhamento, layout de dados ou tamanho da carga de trabalho tornarem a vetorização ineficaz, documentarei isso e focarei em áreas de maior valor, como localidade de cache, overhead de alocação, ramificações, sincronização ou mudanças algorítmicas.
Como você verifica que a otimização não quebra a correção?
As mudanças são validadas com seus testes existentes, saídas de referência, resultados determinísticos ou uma verificação de correção acordada. Quando suportado, o código modificado também é verificado com ASan e UBSan, e o código tocado é mantido livre de avisos sob flags de compilador rigorosos.
Até que ponto o limite de LOC cobre meu código?
O limite de LOC se aplica à região crítica de desempenho sob investigação, não a todo o seu repositório. Grandes bases de código ainda podem caber em um pacote se o profiling isolar o gargalo para um subsistema ou núcleo menor. Envie a carga de trabalho antes de fazer seu pedido e eu confirmarei o escopo adequado.
E se o gargalo for I/O, espera ou o algoritmo ao invés da execução na CPU?
Identificarei isso na auditoria ao invés de forçar uma otimização a nível de CPU que não moverá sua métrica. Você receberá a evidência, o gargalo real e o próximo passo de maior valor.
Você pode trabalhar com código proprietário ou sob NDA?
Sim. Posso trabalhar com código proprietário e requisitos razoáveis de NDA/segurança. A fonte é manipulada em um ambiente de desenvolvimento local isolado e não é colada em ferramentas públicas. Por favor, remova credenciais, chaves de API, certificados, dados de clientes e segredos não relacionados antes de compartilhar.

