vb .net内存增长但进程稳定

时间:2015-08-20 08:58:34

标签: .net memory-management windows-7 ram berkeley-db

我正在开发一个.net应用程序,它在b-tree berkeley db中每300毫秒存储一些数据。 我遇到了一个奇怪的RAM行为:我的应用程序的过程是使用60mb的RAM而且它没有增长。然而,由于内存不可用,PC RAM缓慢减少(几个小时),直到电脑停止工作。我的PC上安装了4 GB的RAM。

这就是我在我的应用程序中所做的事情(或多或少):

//Sub called every 300 ms  //lstTags containst 1000 objects

Public Sub InsertReceivedEvents(ByVal arBytesToInsert As Byte(), ByVal dtTimestamp As DateTime)

    For Each oMyTag As Tag In lstTags

        Select Case oMyTag.iDataType

            Case TagDataTypeEnumerator.eTypeOfDataBOOL
                arTempArray = New Byte(0) {}
                Array.Copy(arBytesToInsert, oMyTag.iTagOffset, arTempArray, 0, 1)

            Case TagDataTypeEnumerator.eTypeOfDataINT
                arTempArray = New Byte(1) {}
                Array.Copy(arBytesToInsert, oMyTag.iTagOffset, arTempArray, 0, 2)

            Case TagDataTypeEnumerator.eTypeOfDataREAL
                arTempArray = New Byte(3) {}
                Array.Copy(arBytesToInsert, oMyTag.iTagOffset, arTempArray, 0, 4)

            Case TagDataTypeEnumerator.eTypeOfDataSTRING
                arTempArray = New Byte(49) {}
                Array.Copy(arBytesToInsert, oMyTag.iTagOffset, arTempArray, 0, 50)

        End Select

        Try

            //Put event in relative db
            oKeyToEnter = New DatabaseEntry()
            oKeyToEnter.Data = System.Text.Encoding.ASCII.GetBytes(dtTimestamp.ToString("yyyyMMdd_HHmmss_fff")) 
            oDataToEnter = New DatabaseEntry(arTempArray)
            lstDbsEvents(oMyTag.iTagID).timeMachineBTreeDB.Put(oKeyToEnter, oDataToEnter)

        Catch ex As Exception
            LogErrorManagement.writeLogToFile("There was an error writing events to db", ex)
        End Try
    Next
End Sub

为什么会这样?

提前致谢。

0 个答案:

没有答案