我的程序有7,667,712字节的已提交堆,但它有33,546,240个保留堆字节!我可以看到该程序使用大约44 MB的专用字节。我怎样才能让.NET GC为托管堆预留更少的空间?.NET提交与保留堆大小
2
A
回答
3
最简单的答案是你不能。 .Net GC是自调整的,它会热切地保留内存,但它不会在内存需要时才提交内存,当内存不再需要时,它会被重新保留。
GC uncommit机器上存在高存储压力时的记忆。
33 MB不是那么大,因为默认情况下(如果您的进程是32位,并且您正在运行工作站GC模式),您将为16 MB的小对象堆保留默认段。
6
仅仅因为你的进程已经保留了内存,并不意味着它正在使用那个内存。
在Windows中,保留内存意味着您的进程已将映射页面映射到它是地址空间。物理内存通过提交这些保留页面来分配。当然,即使这样,你也不一定要使用那个内存,因为提交的页面可以换出到页面文件,暂时释放底层的物理内存。
总之,这不是你(通常)需要担心的事情。你试图解决什么问题?
相关问题
- 1. 如何计算保留的堆大小和浅堆大小?
- 2. 预留Java JVM最大堆大小
- 3. 在提交后保留值
- 4. 保留一个cell.imageView的大小与图像大小无关
- 5. 表单提交导致'超出最大调用堆栈大小'
- 6. SweetAlert 2 - 表单提交(超出最大调用堆栈大小)
- 7. 最大线程堆栈大小.NET?
- 8. str_ireplace()保留大小写
- 9. 保留笔的大小?
- 10. 使用jackson ObjectMapper时保留的堆大小更多ObjectMapper
- 11. 如何在保留“最新”提交的同时压缩大量“先前”提交?
- 12. .NET大对象堆和JSON交互
- 13. 使用Ruby's Net保留HTTP标头中的大小写:HTTP
- 14. JRuby Rails应用程序中org.jruby.RubyRegexp $ RegexpCache的非常大的保留堆大小
- 15. 提交后保留字段值
- 16. PHP提交后保留选择选项
- 17. 保留复选框值上提交
- 18. jQuery Mobile:提交后保留数据
- 19. 在php提交后保留表单值
- 20. 提交后保留选择框值
- 21. 保留提交的JSP表单数据
- 22. Git的 - 保留工作,无需提交
- 23. 表格提交后保留URL参数
- 24. Codeigniter如何提交后保留价值
- 25. 提交表单并保留值设置
- 26. 删除提交,但保留更改
- 27. Rails:在提交后保留参数
- 28. 本地保留提交克隆Git
- 29. PHP提交后保留表格值
- 30. svn撤销旧提交,保留新提交
我知道什么是承诺和保留的意思。问题在于用户经常抱怨.NET应用程序的内存使用率过高,我想以某种方式隐藏它。 – wj32 2009-06-14 07:06:32