forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на MidletPascal (http://forum.boolean.name/forumdisplay.php?f=88)
-   -   Тестировщик памяти (http://forum.boolean.name/showthread.php?t=14750)

PassCall 17.05.2011 00:38

Тестировщик памяти
 
Вложений: 1
Простая до безобразия программа.:-D

Что она делает?
Просто загружает в массив изображение размером 120х120 пикселей до тех пор, пока не закончится память, и приложение не завершится с ошибкой. Вверху указано число, которое указывает на число уже загруженных изображений.

Исходя из того, что каждый пиксель занимает 4 байта, а изображение емеет размер 120х120, можно вычесть, что одно изображение занимает 57 600 байт.

Результат моего телефона (NOKIA 5300) - 118 изображений (6 912 000 байт)

А сколько у Вас?

P.S.
Предложения/критика приветствуются.

IGR 17.05.2011 01:38

Ответ: Тестировщик памяти
 
ох ши.. А шо нельзя было просто выделять память для интежеров (байтов) ??
А то прям целые картинки лупишь !!
Ну а вообще хз мож и на мп так и нельзя)))) но выглядит решение стремно !! :)

baton4ik 17.05.2011 02:27

Ответ: Тестировщик памяти
 
То есть ошибка в твоей программе - удачное завершение работы?
И ты не придумал ничего лучше для определения свободной памяти?
http://forum.boolean.name/showthread.php?t=6021
Одна функция - memory.free

YellowAfterlife 17.05.2011 06:45

Ответ: Тестировщик памяти
 
Странное, очень странное решение. К тому же на разных телефонах изображения хранятся в разном формате. На более старых моделях не 32-битном.
Как мне кажется, freeMemory\totalMemory лучше определяют количество памяти на телефоне...
http://yellow.orgfree.com/micro/mpinline/#memfree
http://yellow.orgfree.com/micro/mpinline/#memtotal
А выделять память под челочисленные можно, но опять таки только библиотекой или inline()ами в 3+ версиях.

PassCall 17.05.2011 11:32

Ответ: Тестировщик памяти
 
Вообще данная программа предназначена, тобы протестировать, сколько изображений влезет в память.

Цитата:

Одна функция - memory.free
А ты уверен, что она говорит правду?
Вот, например, java info говорит что в моем телефоне 2МБ памяти всего, а свободно - 600 Кб.
Однако каким образом в 600 Кб влезло изображений суммой на 6 Мб?

Это значит либо то, что функция работает не точно, либо то, что под каждый пиксель изображения выделяется не 4 байта, а меньше (зависит от телефона).

Вместо того чтобы сидеть с калькулятором и гадать формат хранения изображений, нужно просто запустить прогу и примерно прикинуть, сколько изображений можно запихнуть в мидлет, чтобы он не сдох (учитывая переменные, классы и прочую лубеду).

SBJoker 17.05.2011 12:08

Ответ: Тестировщик памяти
 
самый простой способ определить цветность( бит/пиксель) это записать пограничный цвет например 1,1,1 в картинку а потом его прочитать. Цвет изменится до ближайшей границы цветности. Отсюда легко посчитать битность.
Например записали цвет 1,1,1 прочитав получили 8,8,8
Значит 256 / 8 = 32 цвета на канал. Т.е. 5бит на канал или 15бит на пиксель без альфы. т.е. 32к цветов.
З.Ы. 15 бит скорее всего пакуются в 2 байта и занимают 16 бит.

PassCall 17.05.2011 12:14

Ответ: Тестировщик памяти
 
Цитата:

записать пограничный цвет например 1,1,1 в картинку а потом его прочитать
Можеш рассказать подробнее насчет "прочитать цвет"? Я так понял, надо использовать либу. А какую?

SBJoker 17.05.2011 12:25

Ответ: Тестировщик памяти
 
хм неужели в МП нет команд чтения/записи пикселей?

PassCall 17.05.2011 12:32

Ответ: Тестировщик памяти
 
plot (x,y) - вычерчивает пиксель в узанную точку.

Больше ничего связанного с пикселями нет :(


Часовой пояс GMT +4, время: 03:31.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot