powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Замер FPS
3 сообщений из 3, страница 1 из 1
Замер FPS
    #38491524
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем!

Делаю игрушку на андроиде, на эмуляторе ну очень медленно выполняется, решил замерить FPS.
Может кривовато, но смысл такой: есть две переменные mOldTime и mCurTime, отвечающие за отсечки времени в миллисекундах, и переменная mFPS, которая каждую итерацию цикла процесса увеличивается на 1 и сбрасывается в 0, когда разница между отсечками превышает 1000 миллисекунд (1 секунду).
Получилось где-то 7-8 кадров в секунду.
Но вот никак не пойму, почему когда вместо секунды устанавливаю минуту (разница между отсечками 60000 миллисекунд), то FPS получается 1. Что я делаю не так?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
    ...
    private Paint mPaint;
    private Paint mPaint2;
    private Rect mRect;
    private StringBuilder message = new StringBuilder();
    
    private long mCurTime;
    private long mOldTime = 0;
    private long mFPS = 0;
    
    ...
    private long getCurTime()
    {
    	Date date = new Date();
    	return date.getTime();
    }
    
    public void setCurTime()
    {
    	mCurTime = getCurTime();
    }
    
    public void setOldTime()
    {
    	mOldTime = getCurTime();
    }
    
    @Override
    public void run()
    {
        while (mRunning)
        {
            Canvas canvas = null;
            try
            {
                // подготовка Canvas-а
                canvas = mSurfaceHolder.lockCanvas();
                synchronized (mSurfaceHolder)
                {
                	// Подсчет FPS
                	mFPS++;
                	setCurTime();
                	if (mCurTime - mOldTime >= 1000)
                	{
                		message.setLength(0);
                		message.append(mFPS);
                		mFPS = 0;
                		setOldTime();
                	}
                    // собственно рисование
                    canvas.drawRect(mRect, mPaint2);
                    canvas.drawText(message.toString(), 30, 30, mPaint);
                }
            }
            catch (Exception e) { }
            finally
            {
                if (canvas != null)
                {
                    mSurfaceHolder.unlockCanvasAndPost(canvas);
                }
            }
        }
    }
...
Рейтинг: 0 / 0
Замер FPS
    #38491933
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема была, оказывается, не в измерениях, а в выводе результата на экран. Исправил.
Но все же вопрос к знающим людям:
ФПС слишком маленький (я, правда, не проверял это на реальном устройстве - нету под рукой),
может я рисование как-то криво и неоптимально делаю?
Может кто другие приемы использует?
...
Рейтинг: 0 / 0
Замер FPS
    #38492519
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на эмуляторе вполне возможно.
про канву ничего сказать не могу.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Замер FPS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]