投稿日 | : 2005/05/13(Fri) 14:41 |
投稿者 | : フレ |
URL | : |
タイトル | : Re: メソッドの戻り値を配列にするとメモリリークする? |
お世話になっています。
フレです。
メモリ使用量が増える事象の原因は未だわかりませんが、
メソッドのシグネチャを変更しないでも
問題を解決する方法がわかりました。
ボタンクリックイベントの処理を
以下のように修正したら、
事象が再現しなくなりました。
Private Sub Command1_Click()
Dim bytArray() As Byte
Dim i As Long
For i = 1 To CLng(500000)
bytArray = Project2.getByteArray
Next i
End Sub
元々、今回の事象を発見した時は、
モジュールのメソッドの処理時間を
計測する目的で呼び出していたため、
戻り値は受け取る必要がなかったので
Call でメソッドを呼び出していましたが、
これだとまずかったようです。
Project2.getByteArray の戻り値を
呼び出し元側で受け取るように修正すれば
正常に動作するようになりました。
実際の業務アプリでは、Public Function のメソッドの
戻り値を受け取らないような作りになっている個所は
存在しませんので、今回の事象が業務アプリで
再現することはないと判断しました。
以上です。
お騒がせしました。