--- title: Быстродействие slug: Mozilla/Performance tags: - TopicStub - Быстродействие - Производительность - Профайлер - Утечки памяти - Энергопотребление translation_of: Mozilla/Performance ---

Собранные здесь статьи помогут вам повысить быстродействие, если вы пишете исходный код ядра Mozilla или дополнения к нему.

Документация

Reporting a Performance Problem
Удобное для пользователя руководство по составлению отчетов по проблемам быстродействия. Среда разработки не требуется.
Рекомендации по повышению производительности расширений
Гайд по производительности для разработчиков дополнений.
Measuring Add-on Startup Performance
Гайд для разработчиков дополнений по настройке окружения для тестирования производительности.
Школа XUL: Производительность дополнений
Заметки для разработчиков дополнений для помощи в избежании ухудшения производительности приложений.
Производительность GPU
Заметки для профилирования и улучшения производительности при использовании GPU.

Просмотреть все страницы с пометками «Производительность»...

Утилиты профилирования и поиска утечек

about:memory
Страница about:memory - это простейший инструмент для измерения потребления памяти, и первое, с чего следует начинать при анализе. Позволяет выполнить относящиеся к памяти операции, такие как запуск сборщика мусора и сборщика циклических ссылок, сохранение дампа памяти сборщика мусора и сборщика циклических ссылок, сохранение дампа отчета DMD. Страница about:memory построена на верхнем уровне инфраструктуры отчетов памяти Firefox.
Профайлер DMD
DMD - это инструмент, который находит проблемные места на странице about:memory, и также может выполнять множество видов проверок кучи.
areweslimyet.com
Сайт areweslimyet.com (аббревиатура AWSY), показывающий потребление памяти различными версиями сборок Firefox.
BloatView
BloatView для каждого класса показывает статистику по выделенным блокам и ссылкам, а также общую величину объема памяти, подвергшегося утечке, с разбивкой по классам. Используется как часть процесса тестирования в непрерывной интеграции сборок Mozilla.
Трассировка и балансировка ссылок
Трассировка и балансировка ссылок - это способы отслеживания утечек памяти, вызванных неправильным использованием механизма подсчета ссылок (reference counting). Эти способы медлительны и не просты в применении, поэтому больше подходят для опытных разработчиков.
Логи сборщика мусора и сборщика циклических ссылок
Логи сборщика мусора и сборщика циклических ссылок могут быть созданы и проанализированы разными способами. Например, они помогут вам понять, почему конкретный объект не был уничтожен и продолжает жить.
Valgrind
Valgrind - это инструмент, который выявляет различные связанные с памятью проблемы во время выполнения, включая утечки памяти. Valgring используется как часть процесса тестирования в непрерывной интеграции сборок Mozilla, однако покрытие кода тестами ограничено, так как Valgring медлителен.
LeakSanitizer
LeakSanitizer (аббревиатура LSAN) - похож на Valgrind, но выполняется быстрее, потому что использует статический анализ исходного кода. LSAN является частью процесса тестирования в непрерывной интеграции сборок Mozilla, с множеством тестов, выполняющихся через него как часть тестовых задач инструмента AdressSanitizer (ASAN).
Инструменты Apple
Apple предоставляет несколько интрументов для Mac OS X, которые выявляют проблемы, аналогичные выявляемым инструментами LSAN и Valgrind. Этот инструмент для выявления "утечек" не рекомендуется использовать с движком SpiderMonkey или браузером Firefox, потому что его запутывают меченые указатели (tagged pointers) и он думает, что объекты текут, когда это не так (подробнее см. ошибку 390944).
Leak Gauge
Leak Gauge - это инструмент, который может быть использован для выявления определенных видов утечек в движке Gecko, включая те, что связаны с документами, объектами окон, и docshell-ами.
LogAlloc
LogAlloc - это инструмент, с помощью которого можно получить лог дампа памяти движка Gecko. Этот лог можно впоследствии самостоятельно повторно воспроизвести на дефолтном распределителе памяти браузера Firefox или на другой библиотеке с измененной функцией выделения блоков памяти malloc, включая тестирование других выделенных блоков под точно такой же рабочей нагрузкой.

Смотрите также документацию Стратегии и советы по выявлению утечек памяти.

Профилировка и интрументы анализа производительности

Профилировка с помощью профайлера Developer Tools Profiler
Профайлер, встроенный в инструментарий разработчика, включает в себя водопад высокого уровня (high-level waterfall), детализированное дерево вызовов, профилировку размещенных блоков памяти и профилировку сборщика мусора, а также графики пламени (flame graphs). Все это доступно на всех платформах и каналах релизов, а также поддерживает удаленную профилировку в операционной системе b2g (Boot to Gecko = Firefox OS) и профилировку браузера Fennec (версия Firefox, адаптированная для смартфонов).
Профилировка с помощью дополнения Gecko Profiler {{ gecko_minversion_inline("16.0") }}
Дополнение Gecko Profiler - хороший инструмент, с которого можно начать исследования.
Профилировка с помощью Instruments
Как использовать Instruments от компании Apple для профилировки кода Mozilla.
Профилировка с помощью Xperf
Как использовать утилиту Xperf от компании Microsoft для профилировки кода Mozilla.
Профилировка с помощью Zoom
Zoom - это профайлер под Linux от создателей профайлера Shark.
Измерение производительности с помощью модуля PerfMeasurement.jsm {{ gecko_minversion_inline("2.0") }}
Использование модуля PerfMeasurement.jsm для измерения характеристик производительности вашего кода JavaScript.
Добавление нового датчика телеметрии
Информация о том, как добавить в отчет о производительности системы телеметрии новую характеристику для измерения.
Профилировка JavaScript с помощью Shark {{ gecko_minversion_inline("1.9") }}
Как использовать профайлер Shark под Mac OS X для анализа кода JavaScript в браузере  Firefox 3.5 и более поздних версиях.
Профилировка с помощью Shark
Как использовать инструмент Shark от компании Apple для профилировки кода Mozilla.
Исследование производительности каскадных таблиц стилей CSS
Как выяснить, почему изменение стиля с помощью CSS занимает так много времени.

Профилировка энергопотребления

Общая информация о профилировке энергопотребления
На этой странице предоставлен обзор важной информации, в том числе подробная информация о принципах работы аппаратного обеспечения, о том, какие характеристики можно измерять, какие методы рекомендуется использовать. Эта статья должна стать отправной точкой для тех, кто пока мало знаком с профилировкой энергопотребления.
tools/power/rapl (Mac, Linux)
tools/power/rapl - это консольная утилита в наборе исходных кодов Mozilla, которая использует интерфейс Intel RAPL для оценки энергопотребления пакета, ядер процессора, графического процессора и оперативной памяти.
powermetrics (только для платформы Mac)
powermetrics - это консольная утилита, которая собирает и показывает целый ряд характеристик по всем имеющимся процессам и отдельно по каждому процессу, включая использование центрального процессора, графического процессора, и частоты пробуждения потоков процесса.
Журналирование TimerFirings (Все платформы)
Журналирование TimerFirings - это встроенный механизм записи событий для вывода на экран данных о каждом срабатывании таймера.
dtrace (только для платформы Mac)
dtrace - это мощный инструмент для профилировки пробуждений потоков процесса.
Activity Monitor, меню Battery Status и консольная утилита top (Mac)
Эти инструменты являются основными для пользователей Mac, которые рекомендуется изучить в первую очередь.
Intel Power Gadget (Windows, Mac, Linux)
Intel Power Gadget в режиме реального времени показывает графы для пакетов и RAPL-характеристики процессора. От также дает API, посредством которых эти характеристики могут быть получены.
perf (только для Linux)
perf - это мощная консольная утилита может измерять множество различных параметров, включая характеристики энергопотребления и пробуждения потоков процесса.
turbostat (только для Linux)
turbostat - это консольная утилита, которая собирает и показывает разные связанные с энергопотреблением характеристики, делая акцент на показателях по каждому отдельному процессору, таких как частоты и режимы энергопотребления процессора.
powertop (только для Linux)
powertop - это интерактивная консольная утилита, который собирает и показвает разные связанные с энергопотреблением характеристики.

Связанные темы

JavaScript, XPCOM, Developing Mozilla, Extensions, Addons