作者coldspider (spider)
看板Visual_Basic
標題[.NET] VB2005 請問有關記憶體是放問題
時間Wed Jun 23 02:17:44 2010
請輸入專案類型(網站專案或者應用程式專案):
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
1F:推 horngsh:你確定VB.NET 有Erase指令, 改用Class來做可能較好. 06/23 09:29
2F:推 Cypresslin:剛剛看2008有Erase這個指令 06/23 15:45
3F:→ Cypresslin:我沒特別釋放記憶體過,不過你開啟的檔案有Flush掉嗎? 06/23 15:49
4F:→ coldspider:謝謝前輩的提醒 我會往這幾個方向TRY看看的 06/23 22:52