Я обновил свой Ubuntu до 16.04, и с ним Python 3.4 также был обновлен до новой версии Python 3.5.Почему Python 3.5 использует столько памяти? гораздо больше, чем Python 3.4
Я запустил свой код на Python, и я оцепенел. Он использовал в 1,5 раза больше памяти, чем раньше. Тот же код!
Объекты подсчета список из профилировщика памяти ниже:
=== Python 3.5 ===============================================
types | # objects | total size
================================= | =========== | ============
<class 'dict | 3526 | 2.93 MB
<class 'str | 24322 | 2.70 MB
<class 'type | 1255 | 1.22 MB
<class 'code | 8240 | 1.13 MB
<class 'tuple | 3257 | 215.20 KB
<class 'set | 566 | 203.81 KB
<class 'list | 1356 | 179.02 KB
<class 'builtin_function_or_method| 2356 | 165.66 KB
<class 'weakref | 2005 | 156.64 KB
<class 'wrapper_descriptor | 1278 | 99.84 KB
<class 'int | 3488 | 96.62 KB
function (__init__) | 650 | 86.33 KB
<class 'method_descriptor | 1212 | 85.22 KB
<class 'getset_descriptor | 1179 | 82.90 KB
<class 'abc.ABCMeta | 70 | 66.92 KB
=== Python 3.4 ===============================================
types | # objects | total size
================================= | =========== | ============
<class 'dict | 2306 | 2.12 MB
<class 'str | 16819 | 1.90 MB
<class 'type | 865 | 824.64 KB
<class 'code | 5586 | 785.75 KB
<class 'set | 390 | 159.81 KB
<class 'tuple | 2206 | 147.46 KB
<class 'builtin_function_or_method| 2170 | 135.62 KB
<class 'weakref | 1444 | 112.81 KB
<class 'list | 717 | 97.89 KB
<class 'wrapper_descriptor | 1220 | 95.31 KB
<class 'int | 2753 | 75.85 KB
<class 'method_descriptor | 1067 | 75.02 KB
<class 'getset_descriptor | 799 | 56.18 KB
function (__init__) | 399 | 52.99 KB
<class 'abc.ABCMeta | 46 | 42.16 KB
==============================================================
Я хочу напомнить, - тот же самый код дал эти различные результаты.
Почему это произошло? Пожалуйста помоги. Заранее спасибо.
Возможно, вам стоит оставить комментарий. – erip
Также обратите внимание, что у вас есть другое количество объектов в Python 3.4 и 3.5. – erip
Можете ли вы создать небольшой пример скрипта, который демонстрирует ту же разницу в использовании памяти? Учитывая количество объектов, я предполагаю, что ваш реальный код достаточно велик. – chepner