2

我们有一个存在内存问题的企业 Silverlight 应用程序(Silverlight 版本 5.1.10411.0)。

当 silverlight 应用程序在快速计算机(intel I7 和 >4 GB 内存)上运行时,内存使用量在 500 ~ 800mb 之间,但是当它在速度较慢的计算机(intel I5 或 I3 和 <4GB 内存)上运行时,似乎永远不会调用 GC并且内存使用量不断增加,直到系统崩溃。

我试图手动调用 GC,但它在速度较慢的计算机上不起作用。

我用 8 台不同的计算机进行了测试,但结果是相同的。

如果所有计算机的内存使用行为都相同,我可能会怀疑内存泄漏,但为什么它只发生在速度较慢的计算机上?

4

1 回答 1

0

您是否使用 ClientHttp 并将 AllowWriteStreamBuffering 设置为 false?此功能存在大量错误,包括导致不受控制的内存泄漏(至少在 Mac 上)。否则,它可能是您的代码中的错误。在 C# 中很容易发生内存泄漏。只是不要释放引用(并且有许多涉及事件处理程序和其他事物的不可见引用的棘手案例)。GC 无能为力。但是,这并不能解释行为上的差异。

于 2013-01-21T15:29:18.450 回答