3 回答

TA贡献1725条经验 获得超7个赞
我读到malloc可以分配的最大内存被限制为物理内存(在堆上)。
错误:大多数计算机/操作系统都支持虚拟内存,并以磁盘空间为后盾。
一些问题:是否malloc也从HDD分配内存?
malloc 询问操作系统,操作系统可能会占用一些磁盘空间。
出现上述行为的原因是什么?为什么循环没有随时中断?
为什么没有分配失败?
您一次只请求了很少的请求:循环最终将中断(很久之后,由于虚拟内存和物理内存的大量过量以及随之而来的超频繁磁盘访问,您的计算机速度下降,这称为“崩溃”问题”),但在此之前您筋疲力尽。尝试一次获取一个兆字节。
当程序超出一定程度的内存消耗时,计算机将停止工作,因为其他应用程序无法获得所需的足够内存。
完全停止是不可能的,但是当通常需要几微秒的操作最终要花费(例如)数十毫秒时,这四个数量级肯定会使人感觉好像计算机已经基本停止了,并且通常需要花费什么时间一分钟可能要花一个星期。

TA贡献1811条经验 获得超5个赞
malloc它自己执行内存管理,自己管理小内存块,但最终它使用Win32 Heap函数分配内存。您可以将其malloc视为“内存经销商”。
Windows内存子系统包括物理内存(RAM)和虚拟内存(HD)。当物理内存不足时,可以将某些页面从物理内存复制到硬盘驱动器上的虚拟内存。Windows透明地执行此操作。
默认情况下,虚拟内存处于启用状态,并将占用HD上的可用空间。因此,测试将继续运行,直到为该进程分配了全部虚拟内存(32位窗口上为2GB)或填满了硬盘。
没有找到匹配的内容?试试慕课网站内搜索吧
- 3 回答
- 0 关注
- 1187 浏览
添加回答
举报