Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ajax_v_deystvii.pdf
Скачиваний:
38
Добавлен:
05.03.2016
Размер:
5.83 Mб
Скачать

Глава 8. Производительность приложения

ззл

8 4. Разработка с учетом производительности

В начале данной главы мы выяснили, что производительность приложения определяется скоростью его выполнения и объемом занимаемой памяти. Мы также упомянули о том, что стандартные программные решения могут помочь добиться высокой производительности программ.

В этом разделе вы узнаете, как измерить объем памяти, занимаемой реальным приложением. Здесь же мы рассмотрим простой пример, показывающий, что причины слишком большого потребления памяти программой иногда могут быть выявлены лишь в результате глубокого анализа используемых алгоритмов.

8.4.1. Измерение объема памяти, занимаемой приложением

Для измерения скорости выполнения программы мы могли применять как JavaScript-код, а именно объекты Date, так и специальные программы. В JavaScript отсутствуют встроенные средства для определения объема используемой памяти, поэтому для решения этой задачи надо полагаться на внешние инструменты. К счастью, такие инструменты существуют.

Выяснить, какой объем памяти потребляет браузер в процессе выполнения приложения, можно различными способами. Самый простой, способ сделать это — анализировать выполняемые процессы с помощью утилит, ориентированных не конкретную операционную систему. В Windows это Task Manager, а в Unix — команда top, вызываемая с консоли. Рассмотрим каждый из этих инструментов.

Windows Task Manager

Программа Windows Task Manager (рис. 8.5) существует для различных версий системы, однако пользователям Windows 95 и 98 она недоступна. Windows Task Manager предоставляет информацию обо всех процессах, выполняемых в операционной системе, и об используемых ими ресурсах. Обычно данная программа вызывается из меню, отображаемого после нажатия комбинации клавиш <Ctrl+Alt+Delete>. Интерфейс Task Manager состоит из нескольких вкладок. Нас интересует вкладка Processes.

Строка, выделенная на рисунке, сообщает нам, что в текущий момент Firefox использует около 38 Мбайт памяти. Информация о потребляемой памяти отображается в столбце Mem Usage. В некоторых версиях Windows пользователь может добавить дополнительные столбцы, используя меню View=>Select Columns (рис. 8.6).

Отображая наряду с Memory Usage значение Virtual Memory Size, можно получить полезную информацию о работе программы. Если Memory Usage представляет активизированную память, выделенную приложению, то Virtual Memory Size отображает информацию о неактивизированной памяти, записанной в раздел свопинга. При минимизации Windows-приложения значение в столбце Mem Usage существенно уменьшается, a Virtual Memory Size становится более или менее постоянным, показывая, какой объем ресурсов приложение может потреблять в дальнейшем.

334 Часть II! Создание профессиональных Ajax-приложений

Рис. 8.5. Программа Windows Task Manager отображает список выполняемых процессов и используемую ими память Процессы отсортированы по убыванию объема занимаемой памяти

Утилита top

Консольная программа top, предназначенная для выполнения в системе Unix (а также в Mac OS X), предоставляет приблизительно ту же информацию, что и Windows Task Manager (рис. 8.7).

Как и в случае программы Task Manager, в каждой строке представлены активизированный процесс, объем потребляемой памяти, нагрузка на центральный процессор и некоторые другие сведения. Управление программой top осуществляется с клавиатуры, команды описаны в справочной системе, кроме того, информацию о них можно найти в Интернете. Мы не будем рассматривать подробно программу top, а также аналогичные средства, предоставляющие графический интерфейс, например GNOME System Manager.

Инструменты с расширенными возможностями

Помимо рассмотренных простых инструментов, существуют более мощные средства, которые позволяют контролировать использование памяти, а также предоставляют подробные сведения о внутреннем состоянии операционной системы. Мы не можем уделить внимание всем существующим инструментам, поэтому вкратце рассмотрим лишь два из них. Эти программы распространяются бесплатно, и, на наш взгляд, их использование может помочь разработчикам.

Рис. 8.6. Выбор дополнительных столбцов для отображения на вкладке P r o c e s s e s программы Task Manager. V i r t u a l Memory S i z e отображает общий объем памяти, выделенной процессу

Рис. 8.7. Команда t o p , вызываемая с консоли, показывает объем памяти, используемой приложением, и нагрузку на центральный процессор

Рис. 8.8. Process Explorer предоставляет подробные сведения об использовании памяти и процессора каждым процессом и позволяет отслеживать особенности работы различных браузеров на машине под управлением Windows. В окне, приведенном на этом рисунке, отображается информация о выполнении в среде Mozilla f irefox теста, олисанного в разделе 8 4.2

Инструмент Process Explorer производства Sysinternal.com (рис. 8.8) часто в шутку называют "диспетчером задач на стероидах". Он выполняет те же функции, что и Task Manager, но предоставляет подробную информацию об использовании памяти и центрального процессора каждым процессом. С его помощью мы можем, например, изучить особенности работы браузера Internet Explorer или Firefox.

Дж. Г. Веббер (J. G. Webber) разработал Drip (ссылка на соответствующий ресурс приведена в конце данной главы) — простой, но мощный инструмент, ориентированный на Internet Explorer и предоставляющий информацию об использовании памяти. Он непосредственно запрашивает Web-браузер об известных ему узлах D0M, в том числе о тех, которые не связаны с деревом документа (рис. 8.9).

Даже такие простые инструменты могут много сказать о состоянии выполняющегося Ajax-приложения.

Мы рассмотрели детали и особенности, влияющие на производительность

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]