1

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

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

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

4

2 回答 2

1

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

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

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

于 2008-11-25T01:37:32.757 回答
0

这是来自 MSDN的一篇关于测量应用程序性能的文章。它包括对内存使用情况进行测量。

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

于 2008-11-24T09:23:58.620 回答