BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #38056同步于 2010/4/16
SoftDesign机器人发帖

[合集] 求助,多线程申请堆内存

FadeToBlack
2010/4/16镜像同步0 回复
☆─────────────────────────────────────☆ wx11yaoming (火箭升空) 于 (Mon Jan 18 13:03:12 2010) 提到: 求租各位: 我的程序有八个子线程,每个子线程会申请堆内存225m,该程序一运行就会报错,run time error!程序自动关闭, 1.请问是否是由于开辟堆内存太大,windows不允许? 2.windows分配给一个进程的内存空间是否是固定大小的? 3.分配给一个进程的内存空间和物理内存、虚拟内存大小有什么关系? 谢谢各位了! ☆─────────────────────────────────────☆ coolwc (小包) 于 (Mon Jan 18 13:05:28 2010) 提到: 90%可能性是你程序写的有问题 分配给进程的内存空间与虚拟内存有关系 32位系统是4G 但是其中要拿出一部分给kernel 物理内存与这个没有一丁点关系 ☆─────────────────────────────────────☆ FadeToBlack (拜萝卜教 | gfw nmb) 于 (Mon Jan 18 13:30:24 2010) 提到: : 1.请问是否是由于开辟堆内存太大,windows不允许? 每次VirtualAlloc时判断一下分配是否成功,然后再看是不是申请内存过大的原因 : 2.windows分配给一个进程的内存空间是否是固定大小的? windows x86下内存空间有限制,因为用户态的内存地址范围在0x0001 0000~0xEFFE FFFF。 如果超出范围请手工swap。(如果需要更大范围请用x64或x86 3GB mode) : 3.分配给一个进程的内存空间和物理内存、虚拟内存大小有什么关系? 这个是操作系统的事情 ☆─────────────────────────────────────☆ coolwc (小包) 于 (Mon Jan 18 13:33:07 2010) 提到: win32下就是这样了 【 在 FadeToBlack 的大作中提到: 】 : 每次VirtualAlloc时判断一下分配是否成功,然后再看是不是申请内存过大的原因 : windows x86下内存空间有限制,因为用户态的内存地址范围在0x0001 0000~0xEFFE FFFF。 : 如果超出范围请手工swap。(如果需要更大范围请用x64或x86 3GB mode) : ................... ☆─────────────────────────────────────☆ jmpesp (民国沉思者...) 于 (Mon Jan 18 14:30:28 2010) 提到: 【 在 wx11yaoming 的大作中提到: 】 : 求租各位: : 我的程序有八个子线程,每个子线程会申请堆内存225m,该程序一运行就会报错,run time error!程序自动关闭, : 1.请问是否是由于开辟堆内存太大,windows不允许? : ................... 算下这个 你的磁盘交换文件的大小+真实的物理内存大小 如果总和小于 你申请的堆内存的总和8X225=1.8G的话,那必败无疑了 至于为什么是这样 你可以自己多思考下 ☆─────────────────────────────────────☆ coolwc (小包) 于 (Mon Jan 18 15:09:14 2010) 提到: 直接发程序出来比较好 ☆─────────────────────────────────────☆ white127 (瓜牛) 于 (Mon Jan 18 18:46:01 2010) 提到: 虚拟内存和物理内存之间是映射关系,虚拟内存只有映射到物理内存才能使用 【 在 wx11yaoming 的大作中提到: 】 : 求租各位: : 我的程序有八个子线程,每个子线程会申请堆内存225m,该程序一运行就会报错,run time error!程序自动关闭, : 1.请问是否是由于开辟堆内存太大,windows不允许? : ................... ☆─────────────────────────────────────☆ guying (宙斯) 于 (Thu Jan 21 12:12:47 2010) 提到: windows 进程能用的虚拟内存貌似只有2G 你的程序就申请了1.8G ☆─────────────────────────────────────☆ xieys (枫叶/兄弟会堂主/借楼同征外援) 于 (Thu Jan 21 18:32:30 2010) 提到: 我想堆内存和栈内存都是有限的吧 ☆─────────────────────────────────────☆ ericyosho (ericyosho) 于 (Thu Jan 21 22:14:38 2010) 提到: 225M,一个线程可以放个高清小电影了。
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。