A performance do pacote jq do Ubuntu foi aumentada em 1,9 vezes através da recompilação

Foram publicados os resultados da avaliação do impacto no desempenho da recompilação de pacotes para Ubuntu com várias opções e implementações de funções de alocação de memória. O experimentador conseguiu aumentar em 90% (1,9 vezes) o desempenho do pacote jq, uma ferramenta para processamento de dados em formato JSON, através da recompilação normal a partir do mesmo pacote com código-fonte, sem modificar o próprio código. O desempenho foi avaliado medindo o tempo de execução de uma consulta filtro padrão sobre dados GeoJSON com 500MB.

Resultados do experimento:

  • A versão compilada em GCC a partir dos mesmos fontes com as flags padrão se mostrou 2-4% mais rápida que o pacote binário do Ubuntu.
  • A recompilação com Clang 18, usando nível de otimização '-O3', habilitando a otimização no estágio de vinculação ('-flto') e desativando as informações de depuração ('-DNDEBUG') resultou em uma aceleração de 20%.
  • A recompilação com o sistema de alocação de memória TCMalloc (adicionando '-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal' em LDFLAGS) levou a uma aceleração de 40%.
  • A substituição das funções malloc pelos sistemas de alocação de memória tcmalloc, jemalloc e mimalloc através de 'LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib….so' resultou em aumentos de desempenho de 27%, 29% e 44%. Ao executar com mimalloc, que apresentou uma aceleração de 44%, a variável de ambiente 'MIMALLOC_LARGE_OS_PAGES=1' foi configurada.
  • A recompilação do pacote com mimalloc em LDFLAGS, ao invés de vinculação através de LD_PRELOAD, resultou em uma aceleração no teste de 90%. Outro teste de processamento de 2,2GB de dados JSON em 13000 arquivos também mostrou um aumento de desempenho de aproximadamente duas vezes.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster