【问题标题】:How to calculate/save memory useage of .NET app on terminal servers?如何在终端服务器上计算/保存 .NET 应用程序的内存使用量?
【发布时间】:2010-09-23 17:50:32
【问题描述】:

我在 Citrix/Terminal Server 上做了一些 C# fat 应用程序。

如何测量每个会话的实际内存使用情况? 我可以做些什么来减少总的内存使用量?

我们仍在开发 .NET 1.1。如果我们升级我们的 .NET 运行时会有什么不同吗?

【问题讨论】:

    标签: c# .net terminal


    【解决方案1】:

    Here is an article 来自 MSDN,用于测量应用程序性能。它包括对内存使用情况进行测量。

    我认为升级 .NET 运行时不会对应用程序产生重大影响,您最好以其他方式优化应用程序。尽量在不需要时处理资源。

    【讨论】:

      【解决方案2】:

      在 .NET 中获取实际内存使用情况的指标非常困难。通过调用 Marshal.SizeOf(),您可以获得的最接近的近似值是基于每个对象。我对这种方法的理解是,它本质上是在测量对象的序列化版本的大小,内存中的占用量可能接近这个值,并不准确。但这是一个很好的估计。

      您可能还想研究 .NET 下的 SMS API。它们提供了从操作系统查询有关您的进程(或其他进程)的各种内存统计信息的方法。它与“perfmon”使用的库相同。您可以使用它以编程方式检查您的流程。

      此外,您还需要购买一个好的 .NET 分析工具。我已经评估了 ANTS 和 dotTrace。他们都很好。我更喜欢 dotTrace 的简单性。大多数分析器都有非常不直观的界面。这正是我所期待的。按照这些标准,dotTrace 实际上相当不错。我认为 ANTS 可能更先进(不确定,只是我对它们进行的简短评估的意见)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-17
        • 2016-10-21
        • 1970-01-01
        • 2019-08-16
        • 1970-01-01
        • 2018-01-13
        • 1970-01-01
        • 2011-12-24
        相关资源
        最近更新 更多