大変お世話になります。
現在困っているプログラムの一部を抜粋します。VB2008です。
Dim chr_len() As Long = {247249719, 242951149, 199501827, 191273063, 180857866, 170899992, 158821424, 146274826, 140273252, 135374737, 134452384, 132349534, 114142980, 106368585, 100338915, 88827254, 78774742, 76117153, 63811651, 62435964, 46944323, 49691432, 154913754, 57772954}
dim j as long
Dim ChIPsignal() As Single
For j = 0 To 23
Erase ChIPsignal
ChIPsignal = Nothing
ReDim ChIPsignal(chr_len(j))
・
(処理)
・
next j
走らせると、j=4でメモリ不足ということでMessage="種類 'System.OutOfMemoryException' の例外がスローされました。"というエラーとともに止まります。
タスクマネージャを見ていると、メモリが解放されておらず、どんどん使用メモリが増えていくようなのですが、上記ではメモリが解放されないのでしょうか。
GC.Collect()をChIPsignal = Nothing
の後にいれて
Dim chr_len() As Long = {247249719, 242951149, 199501827, 191273063, 180857866, 170899992, 158821424, 146274826, 140273252, 135374737, 134452384, 132349534, 114142980, 106368585, 100338915, 88827254, 78774742, 76117153, 63811651, 62435964, 46944323, 49691432, 154913754, 57772954}
dim j as long
Dim ChIPsignal() As Single
For j = 0 To 23
ChIPsignal = Nothing
GC.Collect()
ReDim ChIPsignal(chr_len(j))
・
(処理)
・
next j
としてみてはどうでしょうか?
ひよこさん、ありがとうございました。
解決致しました。
GCというのはGarbage Collectionなのですね。
ツイート | ![]() |