Украинский Android - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Украинский Android - форум » Общие вопросы » Предложения по оптимизации


Предложения по оптимизации

Сообщений 1 страница 3 из 3

1

Все новые хитрости буду добавлять в первый пост. Начну пока с малого)

    избегайте создания большого количества временных объектов, особенно в циклах! Всеми правдами и неправдами избегайте!
    Если производительность для вас важна, то лучше не используйте String.format по крайней мере с флоатами и с указанием дробной части. При использовании происходил упадок FPS с 60 до 30 (походу 60 - искуственное ограничение в андроиде), при использовании двух строчек вида:

    canvas.drawText(String.format("Memory: %.2fMB of %.2fMB", used/(1024*1024.0f) , total/(1024*1024.0f)), 10, 36 + 16, p);

    FPS упало до 17 FPS.
    При замене строки на три строки вида:

    canvas.drawText("Memory: " + used/(1024*1024.0f) +  " of " +total/(1024*1024.0f), 10, 36 + 16, p);

    FPS стал вновь 60.
    Для еще большего увеличения производительности используйте класс StringBuilder(как мне правильно подсказал Pashtet)

    final StringBuilder sb = new StringBuilder();

    sb.append("Memory: ").append(used/(1024*1024.0f)).append(" of ").append(total/(1024*1024.0f));

    String s = sb.toString();

    но трикс сказал, что "неа, начиная с 1.5 Явы компилятор переделывает это в new StringBuilder().append(...).append(...), можешь проверить" и, скорее всего, это так.

    Старайтесь любыми способами избегать флоатов! (это даже в мануле написано)

    Как можно меньше используйте функции для работы с матрицами - Canvas.save(), Canvas.restore(), canvas.setMatrix() и т.д, как можно меньше перемножений. 160 последовательных вызовов этих функций уменьшают FPS ~ на 10.

    Зачастую использование стандартных методов оказывается достаточно ресурсоемким, к примеру выгоднее вручную перевести четыре байта в один инт, чем вызвать метод Color.fromARGB(). Естественно, если он у вас используется полее 25000 раз в секунду.

    Старайтесь использовать только RGB_565 формат для картинок. Замена RGB_8888 на RGB_565 для фоновой картинки подняло ФПС с 30 до 50

0

2

классененько :x

0

3

Этого, вы точно не встретите нигде.

canvas.drawText(String.format("Memory: %.2fMB of %.2fMB", used/(1024*1024.0f) , total/(1024*1024.0f)), 10, 36 + 16, p);
--------------------------------------------------------------------------------------------------------------
Это обычная практика для разработчика, по крайней мере начинающего.

canvas.drawText("Memory: " + used/(1024*1024.0f) +  " of " +total/(1024*1024.0f), 10, 36 + 16, p);
--------------------------------------------------------------------------------------------------------------

0


Вы здесь » Украинский Android - форум » Общие вопросы » Предложения по оптимизации