巨大的内存消耗差异
问题描述:
我已经开发了写在.NET 4.0/WPF/WCF的应用程序。这是一个电信应用它与大型PBXes连接,并提供用户拨打应用程序的电话。 事件驱动编程的大量已经使用(很多任务并行库的,异步调用),使得硬电话上所做的任何更改反映到实时等应用......巨大的内存消耗差异
应用程序工作正常上高端机器。
我的笔记本配置是RAM:8GB,处理器:Intel I7,逻辑CPU:8,操作系统:Windows 7 SP1(64)
在我的笔记本电脑的应用消耗的内存是大约150 MB。然而,在不同的机器,其中所述配置是RAM上:4GB(可用2.9 GB),双核I3,视窗7 SP1(86)时,存储器消耗大约600 MB。无法弄清楚为什么有这样的区别!
任何指针,请?
答
首先,你需要弄清楚,如果这确实是一个问题。
.NET垃圾收集力图置身事外的样子。其中一件事情就是在不需要清洁时避免清洁。如果您有2.9 GB未使用,并且此进程仅使用了600 MB,则垃圾收集器可能根本就不在乎。
所以,拔出内存剖析,并找出如果你真的有问题或没有。
使用内存设置,例如一个从[红门](http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/)或[喷气脑](HTTP:/ /www.jetbrains.com/dotmemory/) – oleksii 2014-09-12 14:09:33
我的问题更多的是内存架构x64和x86 ......它的所有相同的应用程序在x86机器上消耗4倍的内存。 – JSK 2014-09-12 14:17:03
指针繁重的应用程序可能会占用两倍的内存使用量。你在谈论私人记忆还是什么?在任何情况下,除非系统内存不足,否则通常没有太多关注的原因 - 如果系统处于内存压力下,Windows和.NET将愉快地释放大量“已用”内存。性能分析是共同的第一步 - 您可以使用免费的CLRProfiler来查看两个进程之间的差异,当然也可以使用VMMap等工具查看虚拟内存使用率之间的差异。 – Luaan 2014-09-12 14:49:49