YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Russian subtitles

← 02-05 GPU_Problem_Overdraw

Get Embed Code
13 Languages

Showing Revision 3 created 01/01/2016 by Natalia Savvidi.

  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. в приложении прямо на устройстве Android.
  28. Просто перейдите в режим разработчика
    и включите параметр перерисовки Show GPU.
  29. Не удивляйтесь, когда на экране телефона
    будет множество визуальных странностей.
  30. Это нормально.
  31. С помощью разных цветов Android помечает
    области на экране,
  32. на которых происходит
    повторная перерисовка.
  33. Если вы отрисовали пиксель
    только один раз,
  34. вы увидите, что он отображается
    собственным цветом, без подкраски.
  35. Но если число операций
    перерисовки увеличивается,
  36. то же самое происходит и с цветами.
  37. Одна дополнительная перерисовка,
    например, отображается синим,
  38. это означает, что вы повторно перерисовали
    данный пиксель один раз.
  39. Аналогичное правило применяется для двух,
    трех и четырех перерисовок.
  40. При оптимизации интерфейса приложения
  41. желательно снизить число повторных
    перерисовок, насколько это возможно,
  42. добившись отображения этих областей
    синим, а не красным.
  43. Для этого существует два основных
    способа устранения повторной перерисовки.
  44. Во-первых, вы можете убрать
    из элементов интерфейса
  45. ненужные фоновые изображения
    и отображаемые объекты,
  46. которые не принимают участия
    в финальном отображаемом изображении.
  47. Помните, что это просто
    впустую потраченные ресурсы процессора.
  48. Во-вторых, вы можете задать
    области экрана, которые, как вы знаете,
  49. будут перекрывать часть
    вашего изображения.
  50. Это поможет снизить нагрузку на ЦП и ГП.
  51. Что ж, давайте начнем и присоединимся
    к Крису,
  52. который поможет нам разобраться
    с повторной перерисовкой.