1
4
内存泄漏(增加专用字节)不会对工作集产生影响,这一事实并不奇怪。工作集大小由应用程序最近接触的内存页数决定。private bytes是进程分配的内存量(而不是与其他进程共享)。如果一个应用程序忘记释放它不再使用的对象(内存泄漏),那么它的私有字节将不会下降,但工作集将下降,因为它没有主动使用该内存。见 http://technet.microsoft.com/en-us/library/cc780836.aspx 有关Windows可以跟踪进程的资源的统计信息类型的详细信息。 您可能需要查看每台计算机上应用程序加载的DLL版本-可能需要在存在内存泄漏的计算机上安装修补程序或服务包来解决问题。进程资源管理器还可以显示进程中加载的DLL的详细信息。 |
2
4
虚拟地址空间、专用字节和工作集是应用程序的3个完全不同的方面。
认为专用字节的限制为2GB(对于非大型地址信息软件32位应用程序)是一种典型的误解。2GB实际上是虚拟地址空间的限制。碎片导致专用字节的限制减小。这在多大程度上取决于应用程序。在我的应用程序中,我在1.7-1.8GB左右开始出现问题。 见 http://shsc.info/WindowsMemoryManagement 更详细的解释。 现在这仍然不能解释两台计算机之间的区别。很难知道造成这种差异的真正原因是什么,但这可能有助于了解它们不同的“方面”,我首先看到的是处理器/核心的数量。 您的应用程序是否使用多线程?您的线程之间是否存在仅在四核系统上弹出的同步问题? |
3
0
这可能是碎片的不同。例如,可以使用 small block heap 另一个可能不会。小块堆可以帮助处理由于小分配而导致的碎片。 |
4
0
内存泄漏可能是不可预测的,很难确定。由于您在计算机上有一个带有内存泄漏的IDE,并且您能够调试内存在增加的进程,所以对于坏进程的传统调试方法将是我唯一的建议。你不能用Valgrind,因为你不在*nix上,但也许你应该看看 Is there a good Valgrind substitute for Windows? . |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |
joe · 一页可以同时在两个工作集中吗? 6 年前 |
Jaques · “.exe”已触发断点 6 年前 |
adn bps · 在函数中修改变量的高效内存方法 6 年前 |
Gauraang Khurana · C语言中分段错误的不稳定行为 6 年前 |
Rajesh K · 如何查找设备中存在的广告垃圾? 6 年前 |