2

我们有一个应用程序存在一些有趣的内存使用问题。首次打开时,该程序使用大约 50-60MB 的内存。这在 32 位机器上保持一致。然而,在 64 位机器上,以任何方式(单击、拖动、alt-tabbing 等)重新激活表单都会增加大约 50MB 的内存使用量。它会重复此过程几次,然后重置回 45MB 左右,此时循环再次开始。

我做了一些研究,很多人都说 VB 的垃圾收集能力很差,这可能会以某种方式影响软件。但是,我还没有找到解决方案。激活应用程序时不会触发任何事件(如 32 位使用所示) - 应用程序只是等待用户的操作。

在加载时,系统将一些数据拉入树视图,但这是唯一的外部连接,并且仅当用户对某些内容进行更改并保存更改时才会重新启动例程。

有没有其他人经历过这种奇怪的事情,如果是这样,有人知道什么可以解决吗?似乎很奇怪,它只发生在 x64 系统下。

4

2 回答 2

0

开始寻找导致泄漏的原因的最佳方法之一是使用分析工具。

http://www.jetbrains.com/profiler/

这些人有 10 天的免费试用期,通常足以找出导致您的问题的代码区域。

于 2012-11-22T22:57:26.377 回答
0

这听起来根本不是问题。正如评论中提到的,64 位程序将使用更多内存。该应用程序不会使用太多内存,并且会在一段时间后恢复。VB.net 没有“非常糟糕的垃圾收集”,它使用与 C# 相同的收集器,即 CLR 的收集器。

于 2013-01-04T02:05:40.497 回答