2 <!DOCTYPE book PUBLIC
"-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3 <!ENTITY kcachegrind '
<application
4 >KCachegrind
</application
6 <!ENTITY cachegrind
"<application
7 >Cachegrind</application
9 <!ENTITY calltree
"<application
10 >Calltree</application
12 <!ENTITY valgrind
"<application
13 >Valgrind</application
15 <!ENTITY kappname
"&kcachegrind;">
16 <!ENTITY package
"kdesdk">
17 <!ENTITY % addindex
"IGNORE">
18 <!ENTITY % Russian
"INCLUDE">
21 <!-- ................................................................ -->
23 <book lang=
"&language;">
27 >Руководство
&kcachegrind;</title>
34 >Weidendorfer
</surname
38 >Josef.Weidendorfer@gmx.de
</email
43 <othercredit role=
"translator"
51 >shafff@ukr.net
</email
55 >Перевод на русский
</contrib
65 >Josef Weidendorfer
</holder>
68 >&FDLNotice;</legalnotice>
77 >&kcachegrind; - это интерфейс для программы
&cachegrind;, которая входит в состав
&valgrind;.
</para>
90 >Профилирование
</keyword>
96 <chapter id=
"introduction">
101 >Завершающим шагом разработки качественного программного обеспечения обычно является его оптимизация, т.е. увеличение производительности. И чтобы не терять время на улучшение редко используемых функций, вы можете использовать профилирование.
</para>
104 >При этом программа запускается под контролем средства профилирования, что позволяет выполнять её трассировку. Вы сможете найти места, которые требуют оптимизации (циклы и т.д.), а потом проверить эффективность оптимизации.
</para>
107 >Наиболее известным средством профилирования является
<application
109 > (входит в комплект GCC). Откомпилируйте программу с ключом
<option
111 >; дальнейшее её выполнение приведёт к созданию файла
<filename
113 >, который можно преобразовать в приемлемый для чтения вид командой
<command
115 >. В минусы такого способа следует отнести требуемый шаг компиляции приложения, которое должно быть статически подключено (
"подлинковано").
</para>
118 >&cachegrind; — другое средство профилирования, поставляемое в пакете
&valgrind;. Оно использует эмуляцию процессора, доступную в
&valgrind;, что позволяет перехватить все обращения к памяти без перекомпиляции программы; при этом можно использовать динамически подключаемые библиотеки и модули. Трассировка определяет число инструкций/обращений к данным, уровень непопаданий в кэш (
1-го или
2-го уровня) и устанавливает соответствующее место в исходных кодах. К минусам можно отнести медлительность эмуляции процессора (снижение скорости в
50 раз).
</para>
121 >&calltree; - это расширение
&cachegrind;, собирающее график вызовов программа
"на лету". Он говорит о том, как функции вызывают одна другую и как много событий происходит во время выполнения функции. Кроме того, данные профилирования собираются и разделяются на потоки и контексты цепочки вызовов. Данные профилирования могут быть предоставлены на уровне инструкций.
</para>
124 >&kappname; — визуальный инструмент для просмотра данных профилирования, созданных
&cachegrind; и
&calltree;.
</para>
127 <chapter id=
"using-kcachegrind">
129 >Использование
&kcachegrind;</title>
133 >К сожалению, этот документ не содержит достаточно информации. Вы можете посмотреть секцию документации на
<ulink url=
"http://www.weidendorfers.de/kcachegrind"
134 >http://kcachegrind.sf.net
</ulink
135 >. Кроме того, у всех графических элементов
&kcachegrind; есть справка
<quote
145 ><ulink url=
"http://www.weidendorfers.de/kcachegrind"
146 >Домашняя страница
&kcachegrind;</ulink
150 <sect1 id=
"features">
152 >Возможности
&kcachegrind;</title>
155 >&kcachegrind; поддерживает произвольные типы событий, совмещение данных профилирования, группирование функций, ...
</para>
158 <sect1 id=
"guidelines">
160 >Общее руководство
</title>
163 >Эффективное профилирование...
</para>
166 <sect1 id=
"tutorial">
171 >Сеанс профилирования в
&kcachegrind;.
</para>
176 <chapter id=
"commands">
178 >Список команд
</title>
180 <sect1 id=
"kcachegrind-mainwindow">
182 >Главное окно
&kcachegrind;</title>
205 >Создать
</guimenuitem
211 >Создать новый документ
</action
227 >Сохранить
</guimenuitem
233 >Сохранить изменённый документ
</action
256 > из
&kappname;</para
269 >Вопросы и ответы
</title>
270 &reporting.bugs; &updating.documentation;
<qandaset id=
"faqlist">
274 >&kcachegrind; выглядит забавно. Но я ничего не понял. Для чего он?
</para>
278 >&kcachegrind; может пригодится на последней стадии разработки программного обеспечения, профилировании. Если вы не занимаетесь разработкой ПО, вам не нужна эта программа.
</para>
284 >У меня проблемы при компиляции, что происходит?
</para>
288 >Чаще всего, это из-за отсутствия поддержки
&kde; в
&Qt;.
</para>
294 <chapter id=
"credits">
298 >Благодарности и лицензия
</title>
303 >Спасибо Julian Seward за его превосходную
&valgrind;, и Nicholas Nethercote за
&cachegrind;. Без них не было бы
<application
304 >KCachegrind
</application
307 >Спасибо всем за отчёты об ошибках/предложения. А также:
<itemizedlist>
310 >&kde;, основа для быстрой и комфортной разработки визуальных программ,
</para>
314 >&Qt;, очень мощная библиотека визуальных компонентов
</para>
318 >&Linux;, операционная система будущего
</para>
322 &underFDL; </chapter>
324 <appendix id=
"installation">
328 <sect1 id=
"getting-kcachegrind">
330 >Как получить
&kcachegrind;</title>
333 ><ulink url=
"http://www.weidendorfers.de/kcachegrind"
334 >Домашняя страница
&kcachegrind;</ulink
338 <sect1 id=
"requirements">
343 >&kde; 3.x,
&cachegrind;. Для дерева вызовов, усовершенствуйте
&valgrind; с помощью патча (на исходный код) call-tree, который вы можете найти на домашней странице
&kcachegrind;.
</para>
346 <sect1 id=
"compilation">
348 >Сборка и установка
</title>
349 &install.compile.documentation;
</sect1>
351 <sect1 id=
"configuration">
356 >Все параметры присутствуют или в окне настроек, или в контекстных меню диаграмм.
</para>
362 &documentation.index;
367 sgml-minimize-attributes:nil
368 sgml-general-insert-case:lower