Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ADMIN, Nextik  
Форум » MidletPascal » Основной » Бенчмарк для мобилы (Создаю тестер производительности телефона)
Бенчмарк для мобилы
maestrodanДата: Четверг, 26.01.2012, 16:21 | Сообщение # 1
Непонятливый
Группа: Пользователи
Сообщений: 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
 
PassCallДата: Суббота, 28.01.2012, 21:48 | Сообщение # 2
Знающий
Группа: Проверенные
Сообщений: 89
Награды: 0
Репутация: « 4 »
Статус: Offline
Вообще таким образом тестируется производительность явы-машины, так как получить доступ к процессору напрямую нельзя. А вообще можно ввести некую условную единицу и равняться на неё (например, тысячи вычислений синусов в секунду, или прорисовка x квадратиков за секунду)
 
NextikДата: Понедельник, 30.01.2012, 13:08 | Сообщение # 3
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Вообще, общепринято что мощность процессора на телефонах высчитывается именно графическими тестами, в общем так же как и на компьютерах. В графических тестах также применяются вычисления(пример: молния).
 
Форум » MidletPascal » Основной » Бенчмарк для мобилы (Создаю тестер производительности телефона)
  • Страница 1 из 1
  • 1
Поиск: