[.NET] VB2005 請問有關記憶體釋放問題

看板Visual_Basic作者 (spider)時間14年前 (2010/06/23 02:17), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案): VB.NET 2005 應用程式專案 想請教一下板上的前輩 小弟目前在開發電腦端訊號處理的相關程式 由於一次load 近來的DATA約30~40M的binery DATA 其有關訊號處理的陣列變數型別皆宣告為 double 其中有一個資料型別宣告在module中的全域變數如下 Public Structure acc_data_struct Dim X_dim As Double() Dim Y_dim As Double() Dim RMS As Double() Sub Initialize(ByVal size As Long) ReDim X_dim(size) ReDim Y_dim(size) ReDim RMS(size) End Sub Sub erase_buffer() Erase X_dim Erase Y_dim Erase RMS End Sub End Structure Public after_bandpass As Double() Public processing_buffer As Double() 這個我是宣告在我 load binery data 時才宣告的結構變數 Dim acc_buffer As acc_data_struct acc_buffer.Initialize((CInt(numBytes_acc) / 4) + 1) 當我資料處理完後用了用下列我宣告的函式來釋放記憶體 acc_buffer.erase_buffer() 但執行過後這個指令從 windows工作管理員中查詢我執行程式的記憶體使用量 還是沒有降下來 約530M左右,不知是不是我有漏掉什麼或者沒有下對指令 Public after_bandpass As Double() Public processing_buffer As Double() 這兩個變數因為在程式中會一直用到 所以沒有做記憶體是放的動作 懇請板上前輩賜教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.100.189

06/23 09:29, , 1F
你確定VB.NET 有Erase指令, 改用Class來做可能較好.
06/23 09:29, 1F

06/23 15:45, , 2F
剛剛看2008有Erase這個指令
06/23 15:45, 2F

06/23 15:49, , 3F
我沒特別釋放記憶體過,不過你開啟的檔案有Flush掉嗎?
06/23 15:49, 3F

06/23 22:52, , 4F
謝謝前輩的提醒 我會往這幾個方向TRY看看的
06/23 22:52, 4F
文章代碼(AID): #1C8FvAv5 (Visual_Basic)