- Рейтинг
- 7
Вот небольшой пример:
После выполения несколько десятков мегабайт ОЗУ куда-то резервируется. Итак, если несоклько сотен - тысяч операций, то память просто исчезает вникуда.
Обратно не возвращается даже после reset максовского файла.
Подскажите, пожалуйста, куда может расходоваться память ???
Никакие gc() не помогают. Хотя, если тоже делать вручную, то gc() прекрасно все сбрасывает.
Код:
asd = #()
for i = 1 to 1000 do( ts = Sphere radius:100; ts.material = Standardmaterial name:(uniquename "st_"); append asd ts;)
fn quickAttche arr = (
numArr = arr.count
arNewObj = #()
if numArr > 1 then(
for i = 1 to numArr by 2 do(
if arr[i+1] != undefined then (
meshop.attach (converttomesh arr[i]) (converttomesh arr[i+1]) attachMat:#IDToMat condenseMat:true
gc()
clearUndoBuffer()
append arNewObj arr[i]
) else append arNewObj (converttomesh arr[i])
)
quickAttche arNewObj
)else return arr[1]
)
newObj = quickAttche asd
delete newObj
gc()
Обратно не возвращается даже после reset максовского файла.
Подскажите, пожалуйста, куда может расходоваться память ???
Никакие gc() не помогают. Хотя, если тоже делать вручную, то gc() прекрасно все сбрасывает.