首页 > Web开发 > 详细

.Net 4.5可执行程序OutOfMemory

时间:2015-08-19 16:18:54      阅读:180      评论:0      收藏:0      [点我收藏+]
原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com
 

产线上新部署的服务,发生几次无故停止的情况,通过系统事件看到是这样:

技术分享
 技术分享
这个服务缓存了大量的数据,内存占用比较大,但还不至于OutOfMemory(服务器内存大),怀疑编译时有问题,看项目属性发现这个Perfer 32-bit有重大嫌疑。
 技术分享
技术分享
 
去掉这个选项重新编译部署,跑了一晚上,没有再出问题了,问题解决。
 
原因很简单:
 
32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用)。 如果进程运行中需要申请内存,而操作系统无法为其分配内存空间,则会产生内存不足的异常,在.net中为System.OutOfMemoryException(The exception that is thrown when there is not enough memory tocontinue the execution of a program.)。

.Net 4.5可执行程序OutOfMemory

原文:http://www.cnblogs.com/zeeman/p/4742343.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!