linux-BR.org

Notícias de software livre e tecnologias

Em resumo, o Python 3.12 introduziu a imortalização para resolver problemas de desempenho causados pela modificação da contagem de referência de objetos que de outra forma seriam imutáveis, como None, True e False.O código CPython, por typecasting, trata cada objeto como tendo o tipo PyObject, em parte para garantir uma API interna uniforme, que aceita e retorna objetos do tipo PyObject.Na implementação do CPython, certos objetos como None, True e False atuam como singletons globais, compartilhados pelo interpretador em vez de criar novas cópias a cada vez.Na implementação do CPython, a representação de memória de cada objeto começa com um cabeçalho (definido pela estrutura PyObject), contendo a contagem de referências e o tipo do objeto.O Instagram descobriu que, embora usassem principalmente objetos imutáveis, a cópia na gravação ainda era acionada, levando ao aumento do uso de memória ao longo do tempo.

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