πŸ’Ύ Бколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Бколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Python?

ΠŸΠ°ΠΌΡΡ‚ΡŒ, занимаСмая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Python, зависит ΠΎΡ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ содСрТимого. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π’ΠΈΠΏ int Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 28 Π±Π°ΠΉΡ‚, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, Ссли число большоС.

import sys
x = 42
print(sys.getsizeof(x)) # Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° int 

Π’ΠΈΠΏ float Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 24 Π±Π°ΠΉΡ‚Π°.

import sys
x = 3.14
print(sys.getsizeof(x)) # Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° float

Π‘Ρ‚Ρ€ΠΎΠΊΠ° str Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ.

import sys
x = "Hello, World!"
print(sys.getsizeof(x)) # Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° str

Бписок list Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² Π½Π΅ΠΌ, плюс Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹.

import sys
x = [1, 2, 3, 4, 5]
print(sys.getsizeof(x)) # Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° list

Π­Ρ‚ΠΎ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python. ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° Π½Π΅Ρ‚, ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии Python ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Бколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Python?

ΠŸΠ°ΠΌΡΡ‚ΡŒ, занимаСмая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Python, зависит ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ количСство Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащихся Π² Π½Π΅ΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Python.

1. Числа

Π’ Python Π΅ΡΡ‚ΡŒ нСсколько Ρ‚ΠΈΠΏΠΎΠ² чисСл, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ int (Ρ†Π΅Π»Ρ‹Π΅ числа) ΠΈ float (числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ). Π Π°Π·ΠΌΠ΅Ρ€ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ числами, зависит ΠΎΡ‚ ΠΈΡ… Ρ‚ΠΈΠΏΠ° ΠΈ значСния.


import sys

x = 42
print(sys.getsizeof(x))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 28 (Π±Π°ΠΉΡ‚)

y = 3.14
print(sys.getsizeof(y))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 24 (Π±Π°ΠΉΡ‚Π°)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Python создаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для хранСния числа, поэтому Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ просто Ρ€Π°Π·ΠΌΠ΅Ρ€ числа.

2. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Python ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² зависимости ΠΎΡ‚ ΠΈΡ… Π΄Π»ΠΈΠ½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.


import sys

s1 = 'Hello, world!'
print(sys.getsizeof(s1))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 58 (Π±Π°ΠΉΡ‚)

s2 = 'ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!'
print(sys.getsizeof(s2))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 78 (Π±Π°ΠΉΡ‚)

Π­Ρ‚ΠΈ значСния ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ вСрсии Python ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

3. Бписки ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ

Бписки (list) ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple) Π² Python ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ количСство элСмСнтов Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π Π°Π·ΠΌΠ΅Ρ€ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ списками ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ, зависит ΠΎΡ‚ ΠΈΡ… Π΄Π»ΠΈΠ½Ρ‹ ΠΈ Ρ‚ΠΈΠΏΠΎΠ² элСмСнтов.


import sys

my_list = [1, 2, 3, 4, 5]
print(sys.getsizeof(my_list))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 104 (Π±Π°ΠΉΡ‚Π°)

my_tuple = (1, 2, 3, 4, 5)
print(sys.getsizeof(my_tuple))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 88 (Π±Π°ΠΉΡ‚)

4. Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ

Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ (dict) Π² Python ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π Π°Π·ΠΌΠ΅Ρ€ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ словарями, зависит ΠΎΡ‚ количСства ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π½ΠΈΡ….


import sys

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(sys.getsizeof(my_dict))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 240 (Π±Π°ΠΉΡ‚)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ словари ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС памяти ΠΈΠ·-Π·Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ хранСния Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для быстрого доступа ΠΊ элСмСнтам.

5. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ классы Π² Python ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π Π°Π·ΠΌΠ΅Ρ€ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса, зависит ΠΎΡ‚ Π΅Π³ΠΎ структуры ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….


import sys

class MyClass:
    def __init__(self, x):
        self.x = x

obj = MyClass(42)
print(sys.getsizeof(obj))  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 56 (Π±Π°ΠΉΡ‚)

Π—Π΄Π΅ΡΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠ°ΠΌΡΡ‚ΡŒ для всСх Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π’Ρ‹Π²ΠΎΠ΄

Π Π°Π·ΠΌΠ΅Ρ€ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Python, ΠΌΠΎΠΆΠ΅Ρ‚ сильно Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π΅Π³ΠΎ структуры ΠΈ хранящихся Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sys.getsizeof() для ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях Python ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Если Π²Π°ΠΌ Π²Π°ΠΆΠ½Π° точная ΠΎΡ†Π΅Π½ΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° памяти, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты профилирования ΠΈ измСрСния потрСблСния памяти Π² вашСм ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ сколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° python short #shorts

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² python

Python потрСбляСт ΠΌΠ½ΠΎΠ³ΠΎ памяти, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ список Π² Excel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? πŸ“πŸ

πŸ”₯ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π½Π° Python: пошаговоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

🎨 Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ сСрдцС Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ turtle 🐒

πŸ’Ύ Бколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

πŸ” Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΈ совСты

πŸ” Как вывСсти Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² Python: пошаговая инструкция πŸ”

πŸ”’ Как ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² python: простой ΠΈ эффСктивный ΠΌΠ΅Ρ‚ΠΎΠ΄