SBJoker
щитаеш меня за идиота ? естествено что вызывал
иначе бы память во внутренем манагере прыгала
а так она оставалась всегда константой ...
а память в виндовском манагере откровенно текла
ну вот смотри ... и обьсяни тогда мои наблюдения :
тестовый код
Framework brl.GLMax2D
Import BRL.PNGLoader
Import brl.jpgloader
Type TResourceImage
Field Image:TImage
Method Delete()
DebugLog "eta hren tozhe vizivaetsa ! "
Image = Null
End Method
Function LoadResource:TResourceImage(file$)
Local Res:TResourceImage = New TResourceImage
Res.Image = LoadImage(file)
Return Res
End Function
End Type
Global ResourceManager:TResourceManager
Type TResourceManager
Field Resources:TList
Method Delete()
DebugLog "eta hren vizivaetsa ! "
Resources.Clear()
Resources = Null
End Method
Method CreateNewResource(File$)
Local Res:TResourceImage
Res = TResourceImage.LoadResource(File)
Resources.AddLast Res
End Method
Method LoadResources()
CreateNewResource("circlefont.png")
End Method
Function CreateResourceManager()
ResourceManager = New TResourceManager
ResourceManager.Resources = New TList
End Function
End Type
Graphics 100,100
GCCollect()
While Not KeyHit(KEY_ESCAPE) Or AppTerminate()
TResourceManager.CreateResourceManager()
GCCollect()
ResourceManager.LoadResources()
GCCollect()
ResourceManager = Null
GCCollect()
DebugLog GCMemAlloced()
Wend
End
память во внутренем манагере не течет
нажимаем ctrl+alt+del и смотрим там скока ета тварь жрет памяти
оказывается что жрет по наростающей ...
коментируем строчку Import brl.jpgloader
пробуем опять, память не течет ... вопрос какого хрена ?!
ps. как потом оказалось ...
(я ету проблемму пару дней тому назад решал)
что собстенно методы Delete \ Free не решают етой проблеммы
так что принципиально я использую Free чтобы избавится от кросслинков