gpt4 book ai didi

.net - 比较 .Net 和 VB6 应用程序的内存占用

转载 作者:行者123 更新时间:2023-12-02 17:29:14 25 4
gpt4 key购买 nike

我一直在尝试比较 VB6 应用程序和 .Net 应用程序之间的内存占用。尝试确定两者之间的平均差异是多少。

.Net 代码大部分是 VB6 的直接翻译,并且大部分具有与用 C# 编程相同的指令。因此,虽然这是苹果与橙子的比较,但它是对功能(如果不是逻辑上)等效的程序进行的比较。

我一直在使用Process Explorer帮助我确定应用程序的内存使用情况,但是有几个方面让我感到困惑:

  1. 我一直在尝试确定总体内存消耗。我应该使用哪个进程内存列。到目前为止,我一直在研究工作集。
  2. 为了比较应用程序中 DLL 的大小,PExplorer 显示大小、WS Total 和其他 WS 计数器,如何解释这些?为什么 Size 与 WS Total 如此不同,它们不应该是相同的吗?

到目前为止,我了解到 WS Total 包括 WS Private 和 WS Shareable。因此,使用 WS Total 只能是一种欺骗手段。我还阅读了诸如 .Net exe memory footprint 之类的问题.Net 工作集通常比应有的大。在内存匮乏的环境中实例化进程(例如具有 128 MB 的虚拟机)是否会将工作集大小减少到最小值?

任何帮助或见解将不胜感激。

最佳答案

有一个good essay马克·鲁西诺维奇 (Mark Russinovich) 对此进行了阐述。

您可以使用 Win32 API 调用 SetProcessWorkingSetSize(GetCurrentProcess(), -1, -1) 手动减少应用的工作集。当系统内存不足时,Windows 无论如何都会执行此操作,但您可以自行控制何时发生这种情况,从而将 .NET 应用程序的工作集缩减至最小大小,以便进行调查。

关于.net - 比较 .Net 和 VB6 应用程序的内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com