![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
на k700 у мну проблем никада не было..
попробуй GameCanas он автоматом делает двойную буфферизацию -------------------- iOS developer |
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
У меня реализован класс типа GameCanvas, который тоже отвечает за двойную буфферизацию.
С помощью Memory Monitor выяснил, что у меня постоянно забивается память, возможно из-за этого. Хотя не факт, потому что я могу до бессконечности играть в игру, память будет забиваться, но при этом никаких тормозов не наблюдается... |
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
Вроде разобрался, легче конечно от того не стало...
Как выяснилось, дело скорее всего в том, что у некоторых моделей телефонов SE есть два типа используемой памяти plain Java Heap & LAM (Large Array Memory). При работе телефон использует и ту и другую, просто одна - быстрая, а вторая - медленнее... Так вот, сначала ресурсы загружаются в быструю память, а потом, если не хватает места, в ту, что помедленнее... Ну и эта fast video RAM (plain Java Heap, если я правильно понял) имеет размер всего 80 кб. ![]() Изображения в моем приложении весят 160 кб, соответственно половина уходит в LAM, а потому, когда я к ним обращаюсь для прорисовки, то первый раз на прорисовку уходит 1-2 сек. И что тут придумаешь теперь? |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: 6 Всего: 8 |
Попробуй отрисовать через drawRegion, правда будет только на MIDP 2.0 работать, но там вроде можно задать нужный кусок Image.
|
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
Причем здесь drawRegion, я тут про ограничение в памяти телефона говорю.
А изображение у меня на весь экран и на целый файл... |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: 6 Всего: 8 |
Да я че-то подумал, может имеет смысл сделать одну здоровую картинку, а не несколько поменьше. Ну и выводить соответственно через drawRegion.
|
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
Проблема то в том, что если я зделаю одну большую картинку из всех, что у меня есть, то она по-любому будет больше 80 кб., а в доке по Сони Ериксон я извлек то, что быстрая видео-память имеет размер 80 кб. Отсюда, или нужно каждый раз одни рисунки выгружать, а другие загружать, или мириться с тормозами. Другого выхода я пока не вижу...
![]() |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: 6 Всего: 8 |
Может попробовать выкинуть (временно) несколько картинок из архива, чтобы проверить действительно ли будет в этом случае быстро все отрисовываться или нет.
|
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: 6 Всего: 8 |
У меня тоже SE поэтому интересно стало.
Нашел я описание http://developer.sonyericsson.com/getDocument.do?docId=65067 Там сказано: Java heap Java applications use two kinds of heap memory,plain Java heap and LAM (Large Array Memory).The LAM is shared with other processes on the phone. Standard Java objects and vectors of Java objects are always located on the Java heap. Arrays of primitive types (byte[] int[], float[]) however may be put in the LAM if the plain Java heap is low on memory. Small arrays have a greater chance of ending up in the plain Java heap,while large arrays more often are stored in the LAM. !!! Images are also sometimes placed in LAM. !!! The size and configuration of the Plain heap size and the LAM size varies between phone models. Note:From JP-7 Sony Ericsson phones only have one java heap area,which grows dynamically,only lim- ited by free memory in the phone. !!! The size of LAM is not included in the values reported by Runtime.freeMemory and Runtime.totalMemory !!! Похоже, нужно чтобы было произведено какое-нибудь обращение к этим изображениям. Т.е. перед первой отрисовкой на экран, например сразу после загрузки, нужно с ними что-нибудь принудительно сделать, например отрисовать все или часть куда-нибудь. |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |