<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="profiling" xml:lang="bg">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Профилиране</title>
  <section id="system-profiling">
    <title>Как да профилирате вашата система</title>
    <p>Когато „<app>Sysprof</app>“ профилира вашата система, то записва информация за стека на всички изпълняващи програми, включително Linux ядрото. Това понякога може да е объркващо, ако искате да разгледате само един процес. Ако вашата програма не взаимодейства много със системата, може да имате по-голям успех, като използвате „<app>Sysprof</app>“ за <link href="profiling#new-process-profiling">създаване на нов процес</link>.</p>

    <p>За да профилирате цялата си система, уверете се, че целевия бутон е зададен на <em>Всички процеси</em> и натиснете върху <em>Записване</em>.</p>

    <p>В този момент може да бъдете помолени да <em>позволите</em> профилане на системата. Това е необходимо, тъй като реализацията на perf в Linux ядрото изисква root за профилиране на цялата система.</p>

    <p>По време на сесията за профилиране ще видите броя на секундите, през които профилирането е било активно. Повторното натискане на бутона <em>Записване</em> ще спре сесията за профилиране. След това ще бъде показана диаграмата на извикванията.</p>

    <note>
      <p>Ако откриете, че програмата „<app>sysprof</app>“ се появява в диаграмата на извикванията за профилиране, може да помислите да запишете сесията за профилиране с <cmd>sysprof-cli</cmd>. Това е програма от командния ред, която ще запази сесията за профилиране на диска, за да бъде прегледана по-късно.</p>
    </note>

    <p>Вижте <link href="profiling#interpreting-results">интерпретиране на резултатите</link> за повече насоки.</p>

  </section>

  <section id="new-process-profiling">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Профилиране на нов процес</title>

    <p>Често може да се наложи да създадете нов процес за профилиране. Първо, изберете бутона <em>Програма</em> в горната част на прозореца за записване. Попълнете командата и работната папка и по желание посочете всички необходими променливи на средата. Вашият процес ще бъде стартиран, когато започне записът.</p>

    <note>
      <p>Ако създавате процес, който изисква достъп до текущия екран, като например GTK+ програма, трябва да се уверите, че е зададена опцията <em>Наследяване от текущата среда</em>.</p>
    </note>

  </section>

  <section id="sysprof-cli">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Профилиране с sysprof-cli инструмента за командния ред</title>

    <p>За минимално претоварване може да помислите да използвате <cmd>sysprof-cli</cmd> инструмента от командния ред. Когато се изпълнява без никакви аргументи, той ще записва цялата ви система и ще запази изхода в <file>capture.syscap</file>. Този файл може да се отвори с „<app>Sysprof</app>“, за да се види диаграмата на извикванията.</p>

    <p>Ако искате да създадете нов процес, използвайте <cmd>sysprof-cli -- 'команда'</cmd>, за да посочите команда, която да бъде стартирана. Командата ще наследи текущата среда.</p>

  </section>

  <section id="interpreting-results">
    <info>
      <link type="guide" xref="index#profiling"/>
    </info>
    <title>Интерпретиране на резултатите</title>

    <p>Резултатите от профилирането в „<app>Sysprof</app>“ са разделени на три части. В горния ляв ъгъл се намира списък на всички профилирани функции. Те са подредени по това колко често са били извиквани по време на записването.</p>

    <note>
      <p>Важно е да се отбележи, че времето, прекарано във всяка функция, не е отчетено. Това изисква програма за проследяващо профилиране за точно записване. Процентът се изчислява, като се определи колко често тази функция се появява в текущото проследяване на стека, когато е записан отчет.</p>
    </note>

    <p>След като изберете функция от списъка с функции, в долния ляв ъгъл ще се покажат всички записани извикващи на тази функция. Те също така са подредени по процента на отчетите, които са включили тази функция в проследяването на стека.</p>

    <p>Вдясно са показани всички наследници на избраната функция. Може да изберете функция или от списъка с функции, или от списъка с извикващи.</p>

    <note>
      <p>Ако видите <em>- - Превключване на контекст - -</em> в резултатите, това означава, че програмата е преминала към или от Linux ядрото. Причините за това могат да бъдат много, например <em>syscall</em> или <em>signal</em>.</p>
    </note>

  </section>

</page>
