找回密码
 欢迎注册
查看: 14838|回复: 12

[讨论] 关于内存不够的问题

[复制链接]
发表于 2009-1-7 13:53:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
请问一下各位如何处理内存不够时的问题?
比如C++中如何对10W的矩阵乘法?分部份边算边存到文件?会不会速度比较慢?
还有我用C++如何捕获到内存不足的异常?用每次程序都会自己调用虚拟内存,
bad_alloc似乎没用?我想知道物理内存不足如何捕获?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-7 14:04:03 | 显示全部楼层
这么大的都是稀疏矩阵吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-7 14:28:31 | 显示全部楼层
不是稀疏矩阵,我只是想知道遇到这种问题如何处理?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-7 15:26:50 | 显示全部楼层
为什么非要知道物理内存不足呢?heap mgr自己会虚拟内存,如果虚拟不了,才会bad_alloc
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-7 16:36:26 | 显示全部楼层

回复 4# g99 的帖子

在它调用虚拟内存的时候,要等待很久,比如我分配1.4w的时候是1秒多点,算1.5W就成10秒左右了,2W要30秒,而又捕获不到内存不足。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-7 18:11:27 | 显示全部楼层
哈,那只有在分配之前检查物理内存了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-7 19:26:09 | 显示全部楼层
可调用 GlobalMemoryStatus 函数得到剩余物理内存。

我的 PrimeNumber 就这么干的:在输出之前检查用户的可用物理内存,如不够就拒绝服务,并提醒用户适当缩小范围。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-7 19:31:37 | 显示全部楼层
他没说操作系统啊
不见得能行
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-8 09:15:38 | 显示全部楼层
其他操作系统应该也有取物理内存的接口吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-8 14:31:48 | 显示全部楼层

回复 7# gxqcn 的帖子

GlobalMemoryStatus是哪里的函数?什么头文件?
就在windows系统上吧。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-3 20:59 , Processed in 1.202001 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表