在vb.net应用程序中使用更多内存/ CPU

时间:2016-09-30 12:15:08

标签: vb.net performance cpu ram

我在vb.net中开发了一些代码,用于从命令行获取用户输入,逐行搜索大型日志文件(~10-40GB),然后在匹配行的任一侧输出一千行到一个文本文件。

应用程序正在运行,但它只在我的机器上使用最少量的资源;大约28mb RAM / 4GB& 〜1%CPU / 3.1GHz双核I3)并且需要花费数小时来搜索文件,这是不理想的。

由于资源不是这个特定程序的问题,有没有办法提高搜索文件的速度,或者是否存在外部限制,例如磁盘读取速度?

我知道我可能会遗漏一些明显的东西,但我所看到的一切似乎都是关于复杂程序的多线程,同时发生了很多事情。

 Sub SearchFile(ByVal FullPath As String, SearchText As String)

    Dim CurLine As Long = 0, FoundLine As Long
    Dim Timer As Long = 0
    Dim PerText As Integer
    Dim Found As Boolean = False


    Using ReadStream = File.Open(FullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite), objReader As New StreamReader(ReadStream)

        Do While objReader.Peek <> -1 And Found = False
            CurLine = CurLine + 1
            'Displays Percentage of file searched.
            If CurLine > Timer + 50000 Then
                Console.Write(vbBack & vbBack & vbBack)
                PerText = (objReader.BaseStream.Position / objReader.BaseStream.Length) * 100
                Console.Write(PerText & "%")
                Timer = CurLine
            End If

            If InStr(objReader.ReadLine, SearchText) 
                FoundLine = objReader.BaseStream.Position
                Found = True
                ReadLines(FoundLine, FullPath, SearchText)
            End If

        Loop
        objReader.Close()
    End Using
    If Found = False Then MsgBox("Not Found")

End Sub

0 个答案:

没有答案