Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较.Net和VB6应用程序的内存占用_.net_Performance_Memory_Vb6 - Fatal编程技术网

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

比较.Net和VB6应用程序的内存占用,.net,performance,memory,vb6,.net,Performance,Memory,Vb6,我一直在尝试比较VB6应用程序和.Net应用程序之间的内存占用。试图确定两者之间的平均差异 Net代码在很大程度上是VB6的直接翻译,并且在很大程度上具有与C#编程相同的指令。因此,虽然这是一个苹果与橙子的比较,但这是一个功能(如果不是逻辑上)相当的程序的比较 我一直在使用它来帮助我确定应用程序的内存使用情况,但是有几个方面让我感到困惑: 我一直在尝试确定总体内存消耗。我应该使用哪个进程内存列。到目前为止,我一直在看工作集 为了比较应用程序中DLL的大小,PExplorer显示大小、WS-Tot

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

Net代码在很大程度上是VB6的直接翻译,并且在很大程度上具有与C#编程相同的指令。因此,虽然这是一个苹果与橙子的比较,但这是一个功能(如果不是逻辑上)相当的程序的比较

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

  • 我一直在尝试确定总体内存消耗。我应该使用哪个进程内存列。到目前为止,我一直在看工作集
  • 为了比较应用程序中DLL的大小,PExplorer显示大小、WS-Total和其他WS-Counter,如何解释它们?为什么大小与WS-Total如此不同,它们不应该相同吗
  • 到目前为止,我已经收集到WS-Total包括WS-Private和WS-Shareable。因此,仅使用WS-Total可能是一种欺骗措施。我也读过一些问题,例如.Net工作集通常比它应该的大。在内存不足的环境中实例化该进程(比如128MB的VM)会将工作集大小减少到最小值吗

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

    Mark Russinovich对此进行了详细介绍


    您可以使用Win32 API调用SetProcessWorkingSetSize(GetCurrentProcess(),-1,-1)手动减少应用程序的工作集。当系统内存不足时,Windows无论如何都会这样做,但如果你自己控制这种情况发生,你就可以将.NET应用程序的工作集剥离到最小大小,以便进行调查。

    我读了那篇文章,但我没有留下太大的印象,因为他没有真正深入到那么多细节。例如,哪个DLL占用了更多的资源?分析有点缺陷,在我的例子中,源代码至少与原始代码尽可能地匹配。你的第二个URL不起作用。你能提供更多关于如何减少工作集的信息吗?链接被永久断开,所以我添加了Win32 API调用来使用。