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
| Вообще, общепринято что мощность процессора на телефонах высчитывается именно графическими тестами, в общем так же как и на компьютерах. В графических тестах также применяются вычисления(пример: молния).
|
|
| |