|
|
1
1
您的进程可以使用2兆字节的内存。当malloc失败时,使用的内存将接近该值。如果您的计算机的物理内存较少,则该进程的许多内存页将被分页到磁盘。 当异常处理程序释放回内存时,堆管理器将触及所有页,将它们带回物理内存。这会很慢。
|
|
|
2
3
你的分配循环从
除此之外,打电话
如果malloc实现在分配的块旁边存储了一些管理信息(例如块有多大),那么使用的物理内存可能会增加,因为释放的内存需要交换进来。Free需要读取/修改这些管理信息来完成它的工作,为此需要首先交换内存。 |