我支持一个应用程序,它使用大量的字符串连接,我认为这是最终导致OutOfMemory异常的内存泄漏的原因。请看看下面的代码:ASP.NET - 连接字符串内存泄漏
Public Sub ConcatenateString() As String Dim Test1 As String
Test1 = "Hello"
Test1=Test1 & "my"
Test1=Test1 & "name"
Test1=Test1 & "is"
Test1=Test1 & "joe"
Test1=Test1 & "blogs"
Test1=Test1 & "what"
Test1=Test1 & "is"
Test1=Test1 & "yours?" 'line 10
return Test1
End Sub
我相信有九个字符串在内存中输入10作为字符串是不可变对象,但只有一个参考字符串的Test1包含:“你好,我的名字是乔博客你的是什么?“。我的问题是;是垃圾收集器在超出范围时拾取的所有这些字符串?即当子程序结束运行时。我似乎有一个内存泄漏,并认为我真的应该使用StringBuilder对象。
弦数不能足以导致内存异常,除了没有交换的系统上或RAM离开,或用约1MB RAM的系统。 – Linuxios
@ Linux_iOS.rb.cpp.c.lisp.m.sh,我支持的系统连接非常大的字符串。这是一个非常简单的例子。 – w0051977
@ w0051977,在这种情况下,你已经说过......你需要使用'stringbuilder class'并且不要连接。 – Rahul