作者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