logo

сизеоф у Питхон-у

Када пишемо велике скрипте или код од много редова, управљање меморијом треба да нам буде највећи приоритет. Стога, поред доброг знања програмирања, треба да имамо добро знање о ефикасном руковању меморијом. Имамо много функција датих у Питхон-у да бисмо добили величину меморије одређеног објекта присутног у програму, а једна од таквих функција је __сизеоф__(). У овом водичу ћемо научити о функцији __сизеоф__() и њеном раду унутар Питхон програма.

имена градова САД

Питхон функција __сизеоф__().

Функција __сизеоф__() у Питхон-у нам не говори тачно величину објекта. Не враћа величину објекта генератора јер нам Питхон не може унапред рећи колика је величина генератора. Ипак, у ствари, враћа интерну величину за одређени објекат (у бајтовима) који заузима меморију.

Да бисмо ово разумели, погледајмо следећи пример програма са бесконачним објектом генератора.

Пример 1: Погледајте следећи Питхон програм:

 # A default function with endless generator object in it def endlessGenerator(): # A counting variable to initialize the generator counting = 0 # Using while loop to create an endless generator while True: yield counting counting += 1 # Creating infinite loop # Printing memory size of a generator object print('Internal memory size of endless generator object: ', endlessGenerator.__sizeof__()) 

Излаз

 Internal memory size of endless generator object: 120 

Објашњење:

Користили смо подразумевану функцију, тј. ендлессГенератор(), да креирамо бескрајни објекат генератора у програму. У функцији смо иницијализовали променљиву, тј. бројање = 0. Користили смо вхиле петљу на променљивој за бројање без давања тачке прекида у петљи. Креирањем бесконачне петље у функцији, направили смо подразумевану функцију као бесконачан објекат генератора. Коначно, одштампали смо величину интерне меморије бесконачног објекта генератора користећи функцију __сизеоф__().

назив производа за шминкање

Сада можемо јасно разумети функционисање функције __сизеоф__(). Пошто бесконачни објекат генератора у горњем програму нема крај или тачку прекида, Питхон нам не може унапред рећи величину генератора. Али у исто време, можемо да проверимо величину интерне меморије додељену објекту генератора помоћу функције __сизеоф__() јер она мора да заузима неку интерну меморију у Питхон-у.

Погледајмо још један пример где користимо функцију __сизеоф__() да бисмо добили величину интерне меморије без икаквих додатних трошкова.

Пример 2:

 # Define an empty list in the program emptyList = [] # Printing size of empty list print('Internal memory size of an empty list: ', emptyList.__sizeof__()) # Define some lists with elements a = [24] b = [24, 26, 31, 6] c = [1, 2, 6, 5, 415, 9, 23, 29] d = [4, 5, 12, 3, 2, 9, 20, 40, 32, 64] # Printing internal memory size of lists print('Memory size of first list: ', a.__sizeof__()) print('Memory size of second list: ', b.__sizeof__()) print('Memory size of third list: ', c.__sizeof__()) print('Memory size of fourth list: ', d.__sizeof__()) 

Излаз

хеширање у структури података
 Internal memory size of an empty list: 40 Memory size of first list: 48 Memory size of second list: 104 Memory size of third list: 104 Memory size of fourth list: 136 

Објашњење:

Користећи функцију __сизеоф__() можемо јасно видети да је величина интерне меморије празне листе 40 бајтова и сваки елемент присутан на листи додаје величину од 8 бајтова укупној величини меморије листе.