Авторизироваться
  • Страница 1 из 1
  • 1
Модератор форума: ADMIN, Nextik  
Бенчмарк для мобилы
26.01.2012 в 16:21 Сообщение #1
maestrodan
Непонятливый
Пользователи
Сообщений: 21
Награды: 0
Репутация: 0
Offline
Вобщем, такое дело: надумал написать прогу для тестирования железа телефона, вчера сделал версию через интерфейс с использованием граф. режима(canvas), сегодня решил сделать формой, и оказалося, что показатели проца вышли разные, я так понимаю, что графика горошо кушает процессор, а подскажите, как бы можно было использовать эту разницу для оперделения производительности графики?
привожу тексты обоих вариантов софтин

Формой

program CHIPPerformance;
uses memory;
var
timer1,timer2,i,field1,field2,field3,field4:integer;
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(timer1/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'+integertostring(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'+integertostring(getheight),0,40);
drawtext('Нажмите любую клавишу',getwidth/2,50);
repaint;
repeat
delay (100);
until getkeyclicked<>0;
end.

Разница показаний: в графике 162, в форме 234
28.01.2012 в 21:48 Сообщение #2
PassCall
Знающий
Проверенные
Сообщений: 88
Награды: 0
Репутация: 4
Offline
Вообще таким образом тестируется производительность явы-машины, так как получить доступ к процессору напрямую нельзя. А вообще можно ввести некую условную единицу и равняться на неё (например, тысячи вычислений синусов в секунду, или прорисовка x квадратиков за секунду)
30.01.2012 в 13:08 Сообщение #3
Nextik
Программист
Проверенные
Сообщений: 273
Награды: 0
Репутация: 42
Offline
Вообще, общепринято что мощность процессора на телефонах высчитывается именно графическими тестами, в общем так же как и на компьютерах. В графических тестах также применяются вычисления(пример: молния).
  • Страница 1 из 1
  • 1
Поиск: