Создаю бенчмарк для мобилы
Вобщем, такое дело: надумал написать прогу для тестирования железа телефона, вчера сделал версию через интерфейс с использованием граф. режима(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 |
Ответ: Создаю бенчмарк для мобилы
Производительность графики меряется не так. Надо гонять программу (рисование линий, заливка экрана, время выполнения repaint, время создания 100500 форм) Мне кажется, что при рисовании форм телефон обновляет экран когда захочет.
|
Часовой пояс GMT +4, время: 11:08. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot