Translation by Artem Sereda with my minor changes
[kde-ru.git] / docs / kdesdk / kcachegrind / index.docbook
blobbb06322ca0da46409981d011133df76422529d36
1 <?xml version="1.0" ?>
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
5 >'>
6 <!ENTITY cachegrind "<application
7 >Cachegrind</application
8 >">
9 <!ENTITY calltree "<application
10 >Calltree</application
11 >">
12 <!ENTITY valgrind "<application
13 >Valgrind</application
14 >">
15 <!ENTITY kappname "&kcachegrind;">
16 <!ENTITY package "kdesdk">
17 <!ENTITY % addindex "IGNORE">
18 <!ENTITY % Russian "INCLUDE">
21 <!-- ................................................................ -->
23 <book lang="&language;">
25 <bookinfo>
26 <title
27 >Руководство &kcachegrind;</title>
29 <authorgroup>
30 <author
31 ><firstname
32 >Josef</firstname
33 > <surname
34 >Weidendorfer</surname
35 > <affiliation
36 > <address
37 ><email
38 >Josef.Weidendorfer@gmx.de</email
39 ></address>
40 </affiliation>
41 </author>
43 <othercredit role="translator"
44 ><firstname
45 >Николай</firstname
46 ><surname
47 >Шафоростов</surname
48 ><affiliation
49 ><address
50 ><email
51 >shafff@ukr.net</email
52 ></address
53 ></affiliation
54 ><contrib
55 >Перевод на русский</contrib
56 ></othercredit
59 </authorgroup>
61 <copyright>
62 <year
63 >2002-2004</year>
64 <holder
65 >Josef Weidendorfer</holder>
66 </copyright>
67 <legalnotice
68 >&FDLNotice;</legalnotice>
70 <date
71 >2003-09-18</date>
72 <releaseinfo
73 >0.4.3</releaseinfo>
75 <abstract>
76 <para
77 >&kcachegrind; - это интерфейс для программы &cachegrind;, которая входит в состав &valgrind;. </para>
78 </abstract>
80 <keywordset>
81 <keyword
82 >KDE</keyword>
83 <keyword
84 >kdesdk</keyword>
85 <keyword
86 >Cachegrind</keyword>
87 <keyword
88 >Valgrind</keyword>
89 <keyword
90 >Профилирование</keyword>
91 </keywordset>
93 </bookinfo>
96 <chapter id="introduction">
97 <title
98 >Введение</title>
100 <para
101 >Завершающим шагом разработки качественного программного обеспечения обычно является его оптимизация, т.е. увеличение производительности. И чтобы не терять время на улучшение редко используемых функций, вы можете использовать профилирование. </para>
103 <para
104 >При этом программа запускается под контролем средства профилирования, что позволяет выполнять её трассировку. Вы сможете найти места, которые требуют оптимизации (циклы и т.д.), а потом проверить эффективность оптимизации. </para>
106 <para
107 >Наиболее известным средством профилирования является <application
108 >gprof</application
109 > (входит в комплект GCC). Откомпилируйте программу с ключом <option
110 >-pg</option
111 >; дальнейшее её выполнение приведёт к созданию файла <filename
112 >gmon.out</filename
113 >, который можно преобразовать в приемлемый для чтения вид командой <command
114 >gprof</command
115 >. В минусы такого способа следует отнести требуемый шаг компиляции приложения, которое должно быть статически подключено ("подлинковано"). </para>
117 <para
118 >&cachegrind; &mdash; другое средство профилирования, поставляемое в пакете &valgrind;. Оно использует эмуляцию процессора, доступную в &valgrind;, что позволяет перехватить все обращения к памяти без перекомпиляции программы; при этом можно использовать динамически подключаемые библиотеки и модули. Трассировка определяет число инструкций/обращений к данным, уровень непопаданий в кэш (1-го или 2-го уровня) и устанавливает соответствующее место в исходных кодах. К минусам можно отнести медлительность эмуляции процессора (снижение скорости в 50 раз). </para>
120 <para
121 >&calltree; - это расширение &cachegrind;, собирающее график вызовов программа "на лету". Он говорит о том, как функции вызывают одна другую и как много событий происходит во время выполнения функции. Кроме того, данные профилирования собираются и разделяются на потоки и контексты цепочки вызовов. Данные профилирования могут быть предоставлены на уровне инструкций. </para>
123 <para
124 >&kappname; &mdash; визуальный инструмент для просмотра данных профилирования, созданных &cachegrind; и &calltree;. </para>
125 </chapter>
127 <chapter id="using-kcachegrind">
128 <title
129 >Использование &kcachegrind;</title>
131 <note>
132 <para
133 >К сожалению, этот документ не содержит достаточно информации. Вы можете посмотреть секцию документации на <ulink url="http://www.weidendorfers.de/kcachegrind"
134 >http://kcachegrind.sf.net</ulink
135 >. Кроме того, у всех графических элементов &kcachegrind; есть справка <quote
136 >Что это?</quote
137 >. </para>
138 </note>
140 <sect1>
141 <title
142 >Примеры</title>
144 <para
145 ><ulink url="http://www.weidendorfers.de/kcachegrind"
146 >Домашняя страница &kcachegrind;</ulink
147 >. </para>
148 </sect1>
150 <sect1 id="features">
151 <title
152 >Возможности &kcachegrind;</title>
154 <para
155 >&kcachegrind; поддерживает произвольные типы событий, совмещение данных профилирования, группирование функций, ...</para>
156 </sect1>
158 <sect1 id="guidelines">
159 <title
160 >Общее руководство</title>
162 <para
163 >Эффективное профилирование...</para>
165 </sect1>
166 <sect1 id="tutorial">
167 <title
168 >Обучение</title>
170 <para
171 >Сеанс профилирования в &kcachegrind;.</para>
173 </sect1>
174 </chapter>
176 <chapter id="commands">
177 <title
178 >Список команд</title>
180 <sect1 id="kcachegrind-mainwindow">
181 <title
182 >Главное окно &kcachegrind;</title>
183 <para
184 ></para>
186 <sect2>
187 <title
188 >Меню <guimenu
189 >Файл</guimenu
190 ></title>
191 <para>
192 <variablelist>
193 <varlistentry>
194 <term
195 ><menuchoice
196 ><shortcut
197 > <keycombo
198 >&Ctrl;<keycap
199 >N</keycap
200 ></keycombo
201 > </shortcut
202 > <guimenu
203 >Файл</guimenu
204 > <guimenuitem
205 >Создать</guimenuitem
206 > </menuchoice
207 ></term>
208 <listitem
209 ><para
210 ><action
211 >Создать новый документ</action
212 ></para
213 ></listitem>
214 </varlistentry>
215 <varlistentry>
216 <term
217 ><menuchoice
218 ><shortcut
219 > <keycombo
220 >&Ctrl;<keycap
221 >S</keycap
222 ></keycombo
223 > </shortcut
224 > <guimenu
225 >Файл</guimenu
226 > <guimenuitem
227 >Сохранить</guimenuitem
228 > </menuchoice
229 ></term>
230 <listitem
231 ><para
232 ><action
233 >Сохранить изменённый документ</action
234 ></para
235 ></listitem>
236 </varlistentry>
237 <varlistentry>
238 <term
239 ><menuchoice
240 ><shortcut
241 > <keycombo
242 >&Ctrl;<keycap
243 >Q</keycap
244 ></keycombo
245 > </shortcut
246 > <guimenu
247 >Файл</guimenu
248 > <guimenuitem
249 >Выход</guimenuitem
250 > </menuchoice
251 ></term>
252 <listitem
253 ><para
254 ><action
255 >Выйти</action
256 > из &kappname;</para
257 ></listitem>
258 </varlistentry>
259 </variablelist>
260 </para>
262 </sect2>
264 </sect1>
265 </chapter>
267 <chapter id="faq">
268 <title
269 >Вопросы и ответы</title>
270 &reporting.bugs; &updating.documentation; <qandaset id="faqlist">
271 <qandaentry>
272 <question>
273 <para
274 >&kcachegrind; выглядит забавно. Но я ничего не понял. Для чего он?</para>
275 </question>
276 <answer>
277 <para
278 >&kcachegrind; может пригодится на последней стадии разработки программного обеспечения, профилировании. Если вы не занимаетесь разработкой ПО, вам не нужна эта программа. </para>
279 </answer>
280 </qandaentry>
281 <qandaentry>
282 <question>
283 <para
284 >У меня проблемы при компиляции, что происходит?</para>
285 </question>
286 <answer>
287 <para
288 >Чаще всего, это из-за отсутствия поддержки &kde; в &Qt;. </para>
289 </answer>
290 </qandaentry>
291 </qandaset>
292 </chapter>
294 <chapter id="credits">
297 <title
298 >Благодарности и лицензия</title>
300 <para
301 >&kappname; </para>
302 <para
303 >Спасибо Julian Seward за его превосходную &valgrind;, и Nicholas Nethercote за &cachegrind;. Без них не было бы <application
304 >KCachegrind</application
305 >. </para>
306 <para
307 >Спасибо всем за отчёты об ошибках/предложения. А также: <itemizedlist>
308 <listitem
309 ><para
310 >&kde;, основа для быстрой и комфортной разработки визуальных программ,</para>
311 </listitem>
312 <listitem
313 ><para
314 >&Qt;, очень мощная библиотека визуальных компонентов</para>
315 </listitem>
316 <listitem
317 ><para
318 >&Linux;, операционная система будущего</para>
319 </listitem>
320 </itemizedlist>
321 </para>
322 &underFDL; </chapter>
324 <appendix id="installation">
325 <title
326 >Установка</title>
328 <sect1 id="getting-kcachegrind">
329 <title
330 >Как получить &kcachegrind;</title>
332 <para
333 ><ulink url="http://www.weidendorfers.de/kcachegrind"
334 >Домашняя страница &kcachegrind;</ulink
335 >. </para>
336 </sect1>
338 <sect1 id="requirements">
339 <title
340 >Требования</title>
342 <para
343 >&kde; 3.x, &cachegrind;. Для дерева вызовов, усовершенствуйте &valgrind; с помощью патча (на исходный код) call-tree, который вы можете найти на домашней странице &kcachegrind;. </para>
344 </sect1>
346 <sect1 id="compilation">
347 <title
348 >Сборка и установка</title>
349 &install.compile.documentation; </sect1>
351 <sect1 id="configuration">
352 <title
353 >Настройка</title>
355 <para
356 >Все параметры присутствуют или в окне настроек, или в контекстных меню диаграмм. </para>
358 </sect1>
360 </appendix>
362 &documentation.index;
363 </book>
364 <!--
365 Local Variables:
366 mode: sgml
367 sgml-minimize-attributes:nil
368 sgml-general-insert-case:lower
369 sgml-indent-step:0
370 sgml-indent-data:nil
371 End: