![]() |
1
4
蟒蛇
一个
一个
当然,您甚至没有存储IEEE float64的数组(即
如果你想两者兼得,第三方库NumPy可以以同样的方式存储这些位
所以,当你要求一个500K的数组大小时
但是当你在数组上循环,计算每个成员的大小时,你实际上创建了24字节
至于为什么任务管理器显示内存增加3MB:
所以,假设解释器的堆中还有2 MB的空间,您要求它分配一个4 MB的对象。它需要回到Windows,并要求至少多出2MB的内存。它得到的比它需要的多一点(所以它不需要马上回去要求更多),结果是大约3MB。当然,这只是最终从操作系统中获得3MB的许多方法之一,而要弄清楚究竟发生了什么需要复杂的调试(比做更多有用的事情更复杂,比如只跟踪程序的实际堆使用)。 如您所见,这使得任务管理器测量内存使用量非常无用,除了非常宽泛的笔划。(事实上,更糟糕的是,一旦您遇到诸如Python何时向Windows返回空闲内存、内存碎片化时会发生什么情况、OS是否超量使用、页面何时可以或不能在虚拟内存中重新映射以及其他各种复杂性的问题。) 一。尽管它并不总是慢。有时候,内存更紧凑在缓存或虚拟内存方面给了你如此多的优势,以至于它无法弥补在创建和销毁所有对象时浪费的时间。 |
![]() |
2
3
你的
|
![]() |
TheKing · 为什么数组的地址可以有负值? 3 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 7 年前 |
![]() |
Jaques · “.exe”已触发断点 7 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |