Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 使用NGEN时计算节省的工作空间_.net_Memory_Citrix_Terminal Services_Ngen - Fatal编程技术网

.net 使用NGEN时计算节省的工作空间

.net 使用NGEN时计算节省的工作空间,.net,memory,citrix,terminal-services,ngen,.net,Memory,Citrix,Terminal Services,Ngen,我目前正试图计算,在Citrix服务器场上运行时,NGEN是否会为我们的.NET客户端节省内存 我的主要参考资料如下: 这篇文章建议使用VMMap,我只需要检查一下我的可共享WS是否增加了,我是金黄色的 事实上,我确实看到可共享WS中增加了约56MB(请参阅pics前后)。但是我也注意到总的WS也跳了起来。也许是因为NGEN图像的增大 所以我认为我需要考虑到这一点,事实上我的处境更糟了 但我也明白,因为JIT没有发生,所以我在那里节省了一些空间。我相信JIT将显示在私有数据下 我计算如下:

我目前正试图计算,在Citrix服务器场上运行时,NGEN是否会为我们的.NET客户端节省内存

我的主要参考资料如下:

这篇文章建议使用VMMap,我只需要检查一下我的可共享WS是否增加了,我是金黄色的

事实上,我确实看到可共享WS中增加了约56MB(请参阅pics前后)。但是我也注意到总的WS也跳了起来。也许是因为NGEN图像的增大

所以我认为我需要考虑到这一点,事实上我的处境更糟了

但我也明白,因为JIT没有发生,所以我在那里节省了一些空间。我相信JIT将显示在私有数据下

我计算如下: -[ΔImage ShareableWS]+([ΔImage PrivateWS]-[ΔPrivate Data Total WS])

使用下图:

  • 56.3+(-58.3--6.8)=节省4.8MB(每个后续过程)
所以我想问题是——我做得对吗?这里有什么我遗漏或没有考虑的吗

在NGEN之前

在NGEN之后


我不同意你的假设,即由于总WS从212上升到263,你的境况更糟。原因是,您的总数中增加的大部分来自可共享块,您只需为该可共享块支付一次内存成本

因此,这实际上取决于你的应用程序运行了多少个会话/实例,因为56MB的容量在所有会话之间有效共享

因此,权衡如下:

每个会话从专用WS=86.3-81.9=4.4MB(=S)保存

每个会话从可共享的增加=56个/num个会话(=I)

所以你想要的是S>I。显然,对于低会话数,你的情况更糟,对于高会话数,你的情况更好。因此,要找到你的等价点:

4.4=56次/次会话

给出:Num sessions=13


因此,如果您的应用程序在服务器上运行的实例超过13个,那么您最好使用NGEN。

谢谢-这与我的理解是一致的。听到别人证实我的想法会有帮助。此外,我还发现,在调试时,我可以使用sos.dll中的“eeheap-loader”命令获得JITed代码的准确计数。不幸的是,对于我们来说,上述程序只是需要部署的一套客户端程序中的一个。总的来说,盈亏平衡点和随后的节省是这样的,我们决定不追求ngen在这个时候。