linux-BR.org

Notícias de software livre e tecnologias

Em resumo, o Python 3.12 introduziu a imortalização para lidar com questões de desempenho causadas pela modificação da contagem de referência de objetos imutáveis, como nenhum, verdadeiro e falso.O código do cpython, digitando, trata todos os objetos como tendo o tipo PyObject, em parte para garantir uma API interna uniforme, que aceita e retorna objetos do tipo Pyobject.Dentro da implementação do CPYTHON, certos objetos como nenhum, verdadeiro e falso agem como singletons globais, compartilhados em todo o intérprete, em vez de criar cópias novas a cada vez.Na implementação de Cpython, a representação de memória de cada objeto começa com um cabeçalho (definido pelo Struct Pyobject), contendo a contagem de referência e o tipo de objeto.O Instagram descobriu que, embora eles usassem principalmente objetos imutáveis, a cópia sobre escritura ainda era acionada, levando ao aumento do uso da memória ao longo do tempo.

Fonte: https://codeconfessions.substack.com/p/understanding-immortal-objects-in