私のプログラムは動作しますが、パフォーマンスの問題が発生していると思います。配列をループしている間、合計 CPU 使用量の最大 40% を消費しています。通常、私のプログラムは CPU 使用率の 5% 未満しか消費しません。100,000 行以上をループしているため、ReDim Preserve がこれを引き起こしていると思います。これが私のコードです。
Dim sArray As String()
Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
Dim sReader As New System.IO.StreamReader(fStream)
Dim Index As Integer = 0
Do While sReader.Peek >= 0
ReDim Preserve sArray(Index)
sArray(Index) = sReader.ReadLine
Index += 1
Loop
fStream.Close()
sReader.Close()
ReDim Preserve 以外に値を配列に配置する別の方法はありますか? 事前に感謝します。私は今、この問題に本当に閉じ込められています。
リストを使用して更新されたコードを次に示します。
Dim sArray As String()
Dim sList As New List(Of String)
Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
Dim sReader As New System.IO.StreamReader(fStream)
Dim Index As Integer = 0
Do While sReader.Peek >= 0
sList.Add(sReader.ReadLine)
Loop
sArray = sList.ToArray
fStream.Close()
sReader.Close()
私はまだ配列の機能が必要だったので、配列を作成し、リストの内容をそこに配置しました。