Показать сообщение отдельно
Старый 14.05.2011, 00:29   #1
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Сообщение Эксперименты с мидлетом

Както раз решил поподробнее узнать возможности своего телефона (а заодно и мидлета).

И решил провести эксперименты.

Опыт 1.
Возьмем картинку размерами 3000x3000. Просто белый квадрат. Сохраняем в пнж с минимальным количесвтом цветов , чтобы получить максимальное сжатие. Полученный размер картинки - около 8 килобайт. Создаем простейший мидлет, который эту картинку грузит (img:=loadimage('/123.png'); Компилируем, скидываем на телефон и запускаем. Сразуже выбивает ошибку "OUT OF MEMORY", что означает нехватки памяти.
ВЫВОД: если картинка весит 8 килобайт, то это не значит что она и в памяти (какбэ оперативной - у мобильника в качестве оперативки используется обычная память телефона) она будет занимать 8 килобайт. Дело в том, что для пущего быстродействия мидлет "распаковывает" пнж в простой битмап образ. Чтобы при каждом обращении к картинке не пришлось распаковывать картинку заново.

Опыт 2. Возьмем и засунем в мидлет файл большого размера (например 2 мегабайта).
Проверить, что случится при запуске, не удалось - телефон даже не запустил мидлет: "испорченное приложение". Видно, не нравится сам размер файл. Ладно, скинем пнж размером 600 кб. Скидываем. Мидлет запустился. Теперь попробуем загрузить картинку в память. Выкидывает с ошибкой.
ВЫВОД: картинка преобразуется в битмап образ только при загрузке. Если же картинка просто будет лежать в архиве - это не страшно.

Опыт 3: что выгоднее - хранить картинки по отдельности или создать 1 большую картинку, а потом вырезать с помощью imagefromimage? Что будет весить меньше: сумма картинок или один тайлсет?
Было отобрано 25 картинок.
Эксперимент показал, что выгоднее иметь один тайлсет, чем множество картинок, где то на 50%. Правда, при большом размере тайлсета может уменьшится качество, так как количество цветов может превысить 256 и придется уменьшать его до 256. Выход - разделить тайлсет на несколько, и сгруппировать в одном тайлсете тайлы одного тона (например, в одном тайлсете - цветные, в другом - монохромные).

В следующий раз я проведу еще пару опытов.
Спасибо за прочтение!
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо PassCall за это полезное сообщение:
Igor (14.05.2011), Rock2roll (14.05.2011)