Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Medir Eficientemente o Uso de Memória de Objetos Python com sys.getsizeof()

Com sys.getsizeof() você pode verificar o uso de memória de um objeto:

import sys
mylist = range(0, 10000)
print(sys.getsizeof(mylist))  # 48

Uau… espere… por que esta lista enorme tem apenas 48 bytes?

Isso acontece porque a função range retorna um objeto iterável que apenas se comporta como uma lista de números, mas internamente apenas mantém a contagem do último número de iteração. Um range é muito mais eficiente em memória do que usar uma lista real de números.

Você pode ver por si mesmo usando uma list comprehension para criar uma lista Python real de números a partir do mesmo range:

import sys
myreallist = [x for x in range(0, 10000)]
print(sys.getsizeof(myreallist))  # 87632

São aproximadamente 87 KB para 10.000 números.

Entendendo a Diferença

O objeto range é uma sequência preguiçosa (lazy) que gera valores sob demanda, armazenando apenas os parâmetros start, stop e step. Já uma lista materializa todos os elementos na memória de uma vez.

Quando Usar Cada Um

Dica Extra: sys.getsizeof() vs. Tamanho Real

Note que sys.getsizeof() retorna apenas o tamanho do objeto em si, não incluindo objetos referenciados. Para uma análise completa de memória, considere o módulo pympler ou tracemalloc.

python

  1. Dominando Tipos de Dados em Python: Guia Prático
  2. Dominando Operadores em Python: Guia Completo
  3. Dominando a Declaração Pass em Python: Guia Prático
  4. Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
  5. Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
  6. Dominando a Função range() do Python: Do Básico ao Avançado
  7. Python time.sleep(): Como Adicionar Atrasos no Seu Código (Exemplo)
  8. Verificando Existência de Arquivos e Diretórios em Python – Guia Prático
  9. Check-up Trimestral de Saúde da Cadeia de Suprimentos: Garanta Operações Suaves
  10. Preparação Essencial de Equipamentos de Construção para a Primavera: Economize Tempo e Prolongue a Vida Útil