我需要强制使用动态RAM的终端服务器为我的.NET应用程序提供更多的RAM,从而减少.NET GC RAM压力并提高性能。对于我使用X86作为目标编译的大型Microsoft .NET C# WinForms应用程序,是否有垃圾收集器或其他.NET Framework设置可用于允许我的应用程序使用更多的RAM以增加性能,而不是让.NET垃圾收集器试图紧密控制RAM压力?我希望有一些.NET GC提示、设置或.NET框架函数调用来调整它运行的方式。
原因:我的应用程序每个工作日被数万名用户在数千台终端服务器上使用。在15年的部署期间,我发现每个实例提供约1.85GB的RAM时,应用程序将表现得足够好。
我们已经做了大量的开发工作,以确保最小的RAM使用和内存泄漏得到控制。(例如:使用(){ },在可能的每个对象上调用Dispose等)
然而,这是一个巨大的应用程序,几乎完成客户业务操作的所有任务,包括一些图形和更多的内容,我预计会使用大量的RAM。
我不能改变到64位,直到我们删除旧的第三方GUI控件,这将需要数月的开发,并且管理层不会让我安排这个,因为它不会提供任何直接的最终用户升级。(除了整体更好的性能...)
问题在于说服客户的IT公司托管终端服务器添加所需的RAM以保持性能。他们通常的论点是虚拟机没有报告重量级的RAM使用情况,这立即意味着我需要花费数天的时间来说服他们在这种情况下不是最佳指标。
另外对于使用动态RAM的服务器,如果不正确增加操作系统的RAM,则应用程序的性能会降低。
我的目标是调整一些设置以允许更多的RAM使用(而不是使用不必要/虚假的内存消耗),并推动这些服务器根据需要分配更多的RAM。
原因:我的应用程序每个工作日被数万名用户在数千台终端服务器上使用。在15年的部署期间,我发现每个实例提供约1.85GB的RAM时,应用程序将表现得足够好。
我们已经做了大量的开发工作,以确保最小的RAM使用和内存泄漏得到控制。(例如:使用(){ },在可能的每个对象上调用Dispose等)
然而,这是一个巨大的应用程序,几乎完成客户业务操作的所有任务,包括一些图形和更多的内容,我预计会使用大量的RAM。
我不能改变到64位,直到我们删除旧的第三方GUI控件,这将需要数月的开发,并且管理层不会让我安排这个,因为它不会提供任何直接的最终用户升级。(除了整体更好的性能...)
问题在于说服客户的IT公司托管终端服务器添加所需的RAM以保持性能。他们通常的论点是虚拟机没有报告重量级的RAM使用情况,这立即意味着我需要花费数天的时间来说服他们在这种情况下不是最佳指标。
另外对于使用动态RAM的服务器,如果不正确增加操作系统的RAM,则应用程序的性能会降低。
我的目标是调整一些设置以允许更多的RAM使用(而不是使用不必要/虚假的内存消耗),并推动这些服务器根据需要分配更多的RAM。