O projeto Gentoo apresentou o sistema de gerenciamento de pacotes Portage 3.0

Estabilizado lançamento do sistema de gerenciamento de pacotes Portage 3.0, aplicada na distribuição Gentoo Linux. Este ramo concluiu um longo trabalho de transição para o Python 3 e a descontinuação do suporte ao Python 2.7.

Além da descontinuação do suporte ao Python 2.7, outra mudança importante foi a inclusão de otimizações, que permitiram acelerar em 50-60% os cálculos relacionados à definição de dependências. Curiosamente, alguns desenvolvedores sugeriram reescrever o código de resolução de dependências em C/C++ ou Go para acelerar seu funcionamento, mas a questão foi resolvida de forma mais simples.

A realização de um perfilamento do código existente mostrou que a maior parte do tempo durante os cálculos era gasta na chamada das funções use_reduce e catpkgsplit com um conjunto repetido de argumentos (por exemplo, a função catpkgsplit foi chamada de 1 a 5 milhões de vezes). Para acelerar, foi aplicado um cache dos resultados dessas funções utilizando dicionários. A função incorporada lru_cache foi considerada ideal para armazenar o cache, mas estava disponível apenas nas versões do Python a partir da 3.2. Para compatibilidade com versões anteriores, foi adicionada uma implementação alternativa que substituía o lru_cache, mas a decisão de descontinuar o suporte ao Python 2.7 no Portage 3.0 simplificou bastante a tarefa e eliminou a necessidade dessa camada adicional.

O uso do cache permitiu reduzir o tempo de execução da operação "emerge -uDvpU —with-bdeps=y @world" em um notebook ThinkPad X220 de 5 minutos e 20 segundos para 3 minutos e 16 segundos (63%). Testes em outros sistemas mostraram um aumento de desempenho não inferior a 48%.

O desenvolvedor que preparou a alteração também tentou implementar um protótipo do código de resolução de dependências em C++ ou Rust, mas a tarefa se revelou muito complexa, pois exigia a portabilidade de um grande volume de código, e, além disso, era duvidoso que o resultado justificasse o esforço investido.

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