Руководство KCachegrind

# Руководство KCachegrind

Josef Weidendorfer `<Josef.Weidendorfer@gmx.de>`

Перевод на русский: Николай Шафоростов
Издание 0.4.3 (2003-09-18)

Авторские права © 2002-2004 Josef Weidendorfer

Юридическое уведомление

KCachegrind - это интерфейс для программы Cachegrind, которая входит в состав Valgrind.

Глава 1. Введение
Введение

# Глава 1. Введение

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

При этом программа запускается под контролем средства профилирования, что позволяет выполнять её трассировку. Вы сможете найти места, которые требуют оптимизации (циклы и т.д.), а потом проверить эффективность оптимизации.

Наиболее известным средством профилирования является gprof (входит в комплект GCC). Откомпилируйте программу с ключом `-pg`; дальнейшее её выполнение приведёт к созданию файла `gmon.out`, который можно преобразовать в приемлемый для чтения вид командой gprof. В минусы такого способа следует отнести требуемый шаг компиляции приложения, которое должно быть статически подключено ("подлинковано").

Cachegrind — другое средство профилирования, поставляемое в пакете Valgrind. Оно использует эмуляцию процессора, доступную в Valgrind, что позволяет перехватить все обращения к памяти без перекомпиляции программы; при этом можно использовать динамически подключаемые библиотеки и модули. Трассировка определяет число инструкций/обращений к данным, уровень непопаданий в кэш (1-го или 2-го уровня) и устанавливает соответствующее место в исходных кодах. К минусам можно отнести медлительность эмуляции процессора (снижение скорости в 50 раз).

Calltree - это расширение Cachegrind, собирающее график вызовов программа "на лету". Он говорит о том, как функции вызывают одна другую и как много событий происходит во время выполнения функции. Кроме того, данные профилирования собираются и разделяются на потоки и контексты цепочки вызовов. Данные профилирования могут быть предоставлены на уровне инструкций.

KCachegrind — визуальный инструмент для просмотра данных профилирования, созданных Cachegrind и Calltree.

Глава 2. Использование KCachegrind
Использование KCachegrind

# Глава 2. Использование KCachegrind

### Примечание

К сожалению, этот документ не содержит достаточно информации. Вы можете посмотреть секцию документации на http://kcachegrind.sf.net. Кроме того, у всех графических элементов KCachegrind есть справка «Что это?».

## Примеры

Домашняя страница KCachegrind.

Возможности KCachegrind
Возможности KCachegrind

## Возможности KCachegrind

KCachegrind поддерживает произвольные типы событий, совмещение данных профилирования, группирование функций, ...

Общее руководство
Общее руководство

## Общее руководство

Эффективное профилирование...

Обучение
Обучение

## Обучение

Сеанс профилирования в KCachegrind.

Глава 3. Список команд
Список команд

# Глава 3. Список команд

## Главное окно KCachegrind

### Меню Файл

Файл → Создать (Ctrl+N)

  Создать новый документ

Файл → Сохранить (Ctrl+S)

  Сохранить изменённый документ

Файл → Выход (Ctrl+Q)

  Выйти из KCachegrind

Глава 4. Вопросы и ответы
Вопросы и ответы

# Глава 4. Вопросы и ответы

Возможно, была выпущена обновлённая версия этого документа. С последней версией документа можно ознакомиться по адресу http://docs.kde.org/.

4.1. KCachegrind выглядит забавно. Но я ничего не понял. Для чего он?
4.2. У меня проблемы при компиляции, что происходит?

4.1. | KCachegrind выглядит забавно. Но я ничего не понял. Для чего он?
| KCachegrind может пригодится на последней стадии разработки программного обеспечения, профилировании. Если вы не занимаетесь разработкой ПО, вам не нужна эта программа.
4.2. | У меня проблемы при компиляции, что происходит?
| Чаще всего, это из-за отсутствия поддержки KDE в Qt™.

Глава 5. Благодарности и лицензия
Благодарности и лицензия

# Глава 5. Благодарности и лицензия

KCachegrind

Спасибо Julian Seward за его превосходную Valgrind, и Nicholas Nethercote за Cachegrind. Без них не было бы KCachegrind.

Спасибо всем за отчёты об ошибках/предложения. А также:

- KDE, основа для быстрой и комфортной разработки визуальных программ,

- Qt™, очень мощная библиотека визуальных компонентов

- Linux®, операционная система будущего

Этот документ распространяется на условиях GNU Free Documentation License.

Приложение A. Установка
Установка

# Приложение A. Установка

## Как получить KCachegrind

Домашняя страница KCachegrind.

Требования
Требования

## Требования

KDE 3.x, Cachegrind. Для дерева вызовов, усовершенствуйте Valgrind с помощью патча (на исходный код) call-tree, который вы можете найти на домашней странице KCachegrind.

Сборка и установка
Сборка и установка

## Сборка и установка

Подробное руководство, описывающее компиляцию и установку приложений KDE, можно найти в Базе технических знаний KDE.

Поскольку для сборки KDE используется cmake, с компиляцией не должно возникнуть никаких проблем. Если у вас всё же возникли проблемы, пожалуйста, сообщите о них с помощью списков рассылки KDE.

Настройка
Настройка

## Настройка

Все параметры присутствуют или в окне настроек, или в контекстных меню диаграмм.