forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   Создаю бенчмарк для мобилы (http://forum.boolean.name/showthread.php?t=16236)

maestrodan 26.01.2012 17:24

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

Формой

program CHIPPerformance;
uses memory;
var
timer1,timer2,i,field1,field2,field3,field4:intege r;
a:real;
c:command;
begin
showform;
setticker('CHIPPerformance');
field1:=formaddstring('Processing CPU test...');
c:=createcommand('ok',CM_OK,1);
timer1:=GetRelativeTimeMs;
for i:=1 to 50000 do
a:=sin (i);
timer2:=GetRelativeTimeMs;
timer1:=timer2-timer1;
clearform;
setticker('CHIPPerformance');
field1:=formaddstring('CPU:'+integertostring(timer 1/100)+' points');
if (memory.total div (1024*1024)=1) then
field2:=formaddstring('Всего java-heap '+integertostring(memory.total/(1024*1024))+'.'+integertostring((memory.total/1024)-1024)+' Mb');
if (memory.total div (1024*1024)=2) then
field2:=formaddstring('Всего java-heap '+integertostring(memory.total/(1024*1024))+'.'+integertostring((memory.total/1024)-2024)+' Mb');
if (memory.total div (1024*1024)=3) then
field2:=formaddstring('Всего java-heap '+integertostring(memory.total/(1024*1024))+'.'+integertostring((memory.total/1024)-3024)+' Mb');
if (memory.total div (1024*1024)=0) then
field2:=formaddstring('Всего java-heap '+integertostring(memory.total/1024)+' Kb');
if (memory.free div (1024*1024)=1) then
field3:=formaddstring('Свободно java-heap '+integertostring(memory.free/(1024*1024))+'.'+integertostring((memory.free/1024)-1024)+' Mb');
if (memory.free div (1024*1024)=2) then
field3:=formaddstring('Свободно java-heap '+integertostring(memory.free/(1024*1024))+'.'+integertostring((memory.free/1024)-2024)+' Mb');
if (memory.free div (1024*1024)=3) then
field3:=formaddstring('Свободно java-heap '+integertostring(memory.free/(1024*1024))+'.'+integertostring((memory.free/1024)-3024)+' Mb');
if (memory.free div (1024*1024)=0) then
field3:=formaddstring('Свободно java-heap '+integertostring(memory.free/1024)+' Kb');
field4:=formaddstring('Размер экрана'+integertostring(getwidth)+'x'+integertostr ing(getheight));
addcommand©;
repeat
delay (100);
until getclickedcommand<>emptycommand;
end.

Графикой

program CPUPerformance;
uses memory;
var
timer1,timer2,i:integer;
a:real;
begin
drawtext('CPUTest',0,0);
drawtext('Processing test...',0,10);
repaint;
timer1:=GetRelativeTimeMs;
for i:=1 to 50000 do
a:=sin (i);
timer2:=GetRelativeTimeMs;
timer1:=timer2-timer1;
setcolor(255,255,255);
fillrect(0,0,getwidth,getheight);
setcolor(0,0,0);
drawtext ('CPU:'+integertostring(timer1/100)+' points',0,10);
if (memory.total div (1024*1024)=1) then
drawtext('Всего java-heap '+integertostring(memory.total/(1024*1024))+'.'+integertostring((memory.total/1024)-1024)+' Mb',0,20);
if (memory.total div (1024*1024)=2) then
drawtext('Всего java-heap '+integertostring(memory.total/(1024*1024))+'.'+integertostring((memory.total/1024)-2024)+' Mb',0,20);
if (memory.total div (1024*1024)=3) then
drawtext('Всего java-heap '+integertostring(memory.total/(1024*1024))+'.'+integertostring((memory.total/1024)-3024)+' Mb',0,20);
if (memory.total div (1024*1024)=0) then
drawtext('Всего java-heap '+integertostring(memory.total/1024)+' Kb',0,20);
if (memory.free div (1024*1024)=1) then
drawtext('Свободно java-heap '+integertostring(memory.free/(1024*1024))+'.'+integertostring((memory.free/1024)-1024)+' Mb',0,20);
if (memory.free div (1024*1024)=2) then
drawtext('Свободно java-heap '+integertostring(memory.free/(1024*1024))+'.'+integertostring((memory.free/1024)-2024)+' Mb',0,20);
if (memory.free div (1024*1024)=3) then
drawtext('Свободно java-heap '+integertostring(memory.free/(1024*1024))+'.'+integertostring((memory.free/1024)-3024)+' Mb',0,20);
if (memory.free div (1024*1024)=0) then
drawtext('Свободно java-heap '+integertostring(memory.free/1024)+' Kb',0,30);
drawtext('Размер экрана'+integertostring(getwidth)+'x'+integertostr ing(getheight),0,40);
drawtext('Нажмите любую клавишу',getwidth/2,50);
repaint;
repeat
delay (100);
until getkeyclicked<>0;
end.

Разница показаний: в графике 162, в форме 234

Igor 11.03.2012 20:52

Ответ: Создаю бенчмарк для мобилы
 
Производительность графики меряется не так. Надо гонять программу (рисование линий, заливка экрана, время выполнения repaint, время создания 100500 форм) Мне кажется, что при рисовании форм телефон обновляет экран когда захочет.


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

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