项目里遇到这么一行代码如下:
dict_data = eval(str_data)
str_data 大小在 3MB 左右,用 memory_profiler 检测到在这一行内存却增加了 50MB 左右,为何?
有没有大佬给个提示
1
BBCCBB 2018-07-24 18:20:02 +08:00
string -> dict, 这还需要解释么?
|
2
aice114 2018-07-24 18:25:19 +08:00 via Android
用空间换时间嘛
|
3
wwqgtxx 2018-07-24 18:26:39 +08:00 1
有什么好奇怪的,数据结构不占用空间的么
|
4
kunluanbudang 2018-07-24 18:49:39 +08:00 via Android
如果了解 dict 的底层实现,几乎可以手动计算出来
|
5
jameslan 2018-07-25 07:11:52 +08:00 via Android
@kunluanbudang 单层大 dict 和多层小 dict,内存占用差别还是很大的
|