Измерение производительности получения
Устранение ненужного получения может существенно улучшить производительность любого приложения. Рисующие вызовы требуют большого количества издержек, и в установке среды получения и в рендеринге заключительного изображения. Инструменты XCode CD идут с инструментами для анализа производительности кода для прорисовки Вашего приложения. Можно использовать эти инструменты для идентификации областей, перерисовывающихся излишне.
Используя кварцевую отладку
Кварцевая Отладка является приложением Какао, позволяющим Вам просмотреть экранные обновления, как они происходят. Приложение расположено в /Developer/Applications/Performance Tools
каталог. После запускающейся Кварцевой Отладки Вам дарят окно опций, показанное на рисунке 1. Это окно содержит несколько флажков отладки (все первоначально невыбранные) и Кнопка раскрытия списка Витрины.
Просмотр обновлений окна
Флажок «Autoflush drawing» заставляет сервер окна сбрасывать содержание Базового Графического графического контекста после каждой операции рисования.
Когда “обновления экрана Flash” выбран, области экрана, собирающиеся быть обновленными, красятся желтыми, сопровождаемыми краткой паузой, сопровождаемой фактическим экранным обновлением. Точно так же области, собирающиеся быть обновленными через аппаратное ускорение, красятся зелеными. Это позволяет Вам видеть экранные обновления, как они происходят. Пауза позволяет Вам видеть цветную область, прежде чем это исчезнет; без него экран был бы сразу обновлен, возможно быстрее, чем можно чувствовать его. Для выключения паузы включите флажок «No delay after flash».
Когда “Flash идентичные обновления” выбраны, области экрана, измененные, но чьи пиксели не изменялись, красятся красными, сопровождаемыми краткой паузой, сопровождаемой обновлением. Для выключения паузы включите флажок «No delay after flash».
Путем наблюдения прямоугольников, которые выводит на экран Кварцевая Отладка, можно определить, как часто и где приложение перерисовывает себя. Если Вы видите, что большая площадь обновляется, но знаете потребности приложения обновить только небольшую часть той области, необходимо возвратиться и проверить прямоугольники обновления. Точно так же, если Вы видите какие-либо красные прямоугольники, Ваше приложение рисует содержание, которое не изменилось и не должно быть перерисовано.
Просмотр списка окна
Выберите Tools> Show Window List для отображения статического снимка списка окна в масштабе всей системы. Список идентифицирует владельца каждого окна и памяти, которую занимает окно. Это полезно для понимания влияния буферизированных окон на объеме потребляемой памяти Вашего приложения.
Таблица 1 объясняет значение каждого столбца в списке окна.
Просмотр дополнительной информации
Меню Quartz Debug Tools включает дополнительные опции для тестирования производительности Вашего приложения. Из этого меню можно просмотреть метр кадра, выводящий на экран текущую скорость рендеринга системы, вместе с влиянием на использование CPU. Можно также вывести на экран окно управления для получения и установки текущего разрешения экрана. Можно использовать это последнее окно для тестирования независимого от разрешения кода рендеринга.
Отладка графики какао
Можно использовать в своих интересах несколько параметров отладки AppKit для сбора данных вокруг производительности получения их приложения. Эти опции находятся в форме параметров командной строки, которые Вы передаете своему приложению во время запуска. Необходимо запустить приложение от Терминала для использования этих параметров.
Таблица 2 перечисляет параметры, которые можно использовать при запуске приложения.
Параметр | Описание |
---|---|
Набор к | |
Пауза для конкретного количества миллисекунд между каждой командой рисования. | |
Окрашивает область для незаконченных операций рисования с указанным цветом. Используйте методы класса NSColor указать требуемый цвет. Для циклического повторения через доступные цвета укажите значение |
Например, для отображения обновлений получения, для приложения TextEdit с помощью цветного синего, и приостанавливаясь для 500 миллисекунд между обновлениями, Вы указали бы следующие команды от Терминала:
% cd /Applications/TextEdit.app/Contents/MacOS |
% ./TextEdit -NSShowAllDrawing 500 -NSShowAllDrawingColor blueColor |