【发布时间】:2011-12-14 14:33:51
【问题描述】:
例如:
for (i = 0; i < 100; i++)
{
string myvar = "";
// Some logic
}
它会导致性能或内存泄漏吗?
我为什么这样做,因为我不希望在 for..loop 之外访问“myvar”。
它是任何性能监视器,我可以比较两个 sn-p 或整个程序之间的执行时间?
谢谢你。
【问题讨论】:
-
C# 中没有内存泄漏。只有循环引用,你不会得到一个字符串。
-
@Dani:.NET 中内存泄漏的可能性较小,但绝对有可能发生。
-
@ScottDorman:有例子吗?
-
@Dani:吃掉你的心吧:msdn.microsoft.com/en-us/magazine/cc163491.aspx#S5
-
@StriplingWarrior:这只是因为保留了对不需要对象的引用。是的,您可以将您曾经使用过的每个对象推送到全局
Stack<Object>并大喊“C# 已泄漏!!!”但这太愚蠢了,任何语言都无法解决。