winxos 发表于 2009-1-7 13:53:04

关于内存不够的问题

请问一下各位如何处理内存不够时的问题?
比如C++中如何对10W的矩阵乘法?分部份边算边存到文件?会不会速度比较慢?
还有我用C++如何捕获到内存不足的异常?用每次程序都会自己调用虚拟内存,bad_alloc似乎没用?我想知道物理内存不足如何捕获?

无心人 发表于 2009-1-7 14:04:03

这么大的都是稀疏矩阵吧

winxos 发表于 2009-1-7 14:28:31

不是稀疏矩阵,我只是想知道遇到这种问题如何处理?

g99 发表于 2009-1-7 15:26:50

为什么非要知道物理内存不足呢?heap mgr自己会虚拟内存,如果虚拟不了,才会bad_alloc

winxos 发表于 2009-1-7 16:36:26

回复 4# g99 的帖子

在它调用虚拟内存的时候,要等待很久,比如我分配1.4w的时候是1秒多点,算1.5W就成10秒左右了,2W要30秒,而又捕获不到内存不足。

g99 发表于 2009-1-7 18:11:27

哈,那只有在分配之前检查物理内存了

gxqcn 发表于 2009-1-7 19:26:09

可调用 GlobalMemoryStatus 函数得到剩余物理内存。

我的 PrimeNumber 就这么干的:在输出之前检查用户的可用物理内存,如不够就拒绝服务,并提醒用户适当缩小范围。

无心人 发表于 2009-1-7 19:31:37

他没说操作系统啊
不见得能行

g99 发表于 2009-1-8 09:15:38

其他操作系统应该也有取物理内存的接口吧

winxos 发表于 2009-1-8 14:31:48

回复 7# gxqcn 的帖子

GlobalMemoryStatus是哪里的函数?什么头文件?
就在windows系统上吧。
页: [1] 2
查看完整版本: 关于内存不够的问题