Проблемка с памятью
есть класс
type TPro field COUNT_FRAMES:int field IMAGE:TImage end type type Ololo extends TObject field PRO:TPro field X,Y:int field CurrentFrame:int method Draw() DrawImage PRO.IMAGE,X,Y,CurrentFrame end method end type Когда вызывается метод Draw() типа Ololo, прога начинает жрать память , от 58 до 400 мб. оказалось, что память жрет строчка DrawImage PRO.IMAGE,x,y,CurrentFrame |
Ответ: Проблемка с памятью
Код создания объектов в студию!
|
Ответ: Проблемка с памятью
Охх... Крорче:
Код:
Type TTreePro Картинка грузится верно. Вот код деревьев: Код:
Type TTree Extends TObject |
Ответ: Проблемка с памятью
Вот те совет избегай называть параметры так же как члены класса. Экранирование локальными переменными может здорово попортить кровь.
В предоставленном коде вроде бы как всё норм. А с чего ты решил что память жрёт, т.е. оно же должно если память течёт хавать постоянно... если же однократное увеличение то это просто аллокейшн включая память на будущее. |
Ответ: Проблемка с памятью
Ну..Ты знаешь, скачок с 58 мегов до полгига оперативы за рисование одной картинки, это слишком... Тем более глюкает при этом неслабо. Где то все же происходит утечка, блин:(
|
Ответ: Проблемка с памятью
Забыл совсем сказать. Картинки дерева - анимированные. 100 кадров О_о. размером [300х300 px примерно.
В PNG оно занимает 5 метров диска. А в оперативе, когда развернется, и того наверно больше. Но ведь он ее предварительно загрузил, какого фига он начинает отжирать память при рисовании то???? |
Ответ: Проблемка с памятью
ну тогда ты попал, 300х300 в памяти станет 512*512, 512*512*100*4 = 100 мегов как минимум.
|
Ответ: Проблемка с памятью
ТОгда не будет деревьев анимированных в игре :(
|
Ответ: Проблемка с памятью
может чуть меньше фреймов? или в требованиях указать 2гб RAM минимум
|
Ответ: Проблемка с памятью
2 ГБ RAM для 4-х видов деревьев? Не, лучше уж тогда сделать их статическими. Хотя движок поддерживает любое кол-во фреймов...
Надо попробовать кадров 10 сделать. И картинку пожать. |
Ответ: Проблемка с памятью
кадры 256*256 сократят потери в 4 раза например.
|
Ответ: Проблемка с памятью
Хыхы :) Сделал-таки 16 кадров. Заметна покадровость, но пофиг. Жрет теперь 58 мегов по максимуму. Тока косячок - движок рисует только то, что находится в пределах экрана. Т.е. пока деревья вдалеке, они не рисуются. Но как начинаю подходить - пару секунд подтормаживает (при этом хавает ~ 16 MB) а потом уже все ОК.
Т.е. это уже мне не исправить, это есть косяк блица, и после загрузки надо тупо прорисовать все кадры всех деревьев, чтоб они потом не лагали. Ща будет тест [UPD] ПРорисовав все кадры всех деревьев после загрузки медии перестало лагать. Всем спасибо :) |
Ответ: Проблемка с памятью
Совет насчёт кадров 256x256 - дельный. Плюс подбери размер самой текстуры, максимально квадратный. Если 16 кадров, то вся текстура будет 1024х1024 - что сильно снизит затраты на видео память.
|
Ответ: Проблемка с памятью
В Бмаксе квадратным должен быть именно кадр, т.к. текстура физически режется на более мелкие, размер исходной текстуры значения не имеет.
|
Часовой пояс GMT +4, время: 12:36. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot