GOOGLE ADS

понедельник, 25 апреля 2022 г.

есть ли разница в сохранении памяти между обычным словарем и словарем trie?

есть ли разница в экономии места в памяти между trie и обычным словарем? если да, то есть ли способ подсчитать и измерить их разницу? например, сколько битов или байтов составляет их разница.

вот пример этих двух типов словарей:

trie_dict = {'f': {'o': {'o': {'t': {'value':'to walk with'},   
'l': {'value':'to teach'},
'd':{'value': 'to eat'}}}}}
normal_dict = {'foot': {'value': 'to walk with'},
'fool': {'value': 'to teach'},
'food': {'value': 'to eat'}}


Решение проблемы

Это моя попытка лучше оценить общий размер объекта ( dictи strтолько):

def rec_size_of(obj):
current = 0
if isinstance(obj, dict):
current += getsizeof(obj)
for k,v in obj.items():
current += getsizeof(k)
current += rec_size_of(v)
elif isinstance(obj, str):
current += getsizeof(obj)
return current
rec_size_of(trie_dict)
2315
rec_size_of(normal_dict)
1454

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...