natgillin/translations-raw huggingface dataset:
System-wide profiling is only permitted to the root user, as all actions on the system can be observed; therefore, the following has to be done as root. First, configure the profiling process, using the & GUI; oprof_start or the command-line tool opcontrol. Standard configuration should be timer mode (TBS;, see introduction). To start the measurement, run opcontrol -s. Then run the application you are interested in and, afterwards, do a opcontrol -d. This will write out the measurement results into files under folder / var/ lib/ oprofile/ samples/. To be able to visualize the data in & kcachegrind;, do in an empty directory: opreport -gdf _BAR_ op2callgrind This will produce a lot of files, one for every program which was running on the system. Each one can be loaded into & kcachegrind; on its own.
Загальносистемне профілювання можна виконувати лише користувачеві root. Оскільки за такого профілювання можна спостерігати за всіма діями у системі, слід виконувати наступні дії від імені користувача root. Спочатку, налаштуйте процес профілювання за допомогою графічного інтерфейсу oprof_ start або інструменту командного рядка opcontrol. За стандартних налаштувань буде використано режим таймера (TBS;, див. вступ). Щоб розпочати вимірювання, виконайте команду opcontrol - s. Після цього запустіть програму, яка вас цікавить, і виконайте команду opcontrol - d. Ця команда запише всі результати вимірювання до файлів у теці / var/ lib/ oprofile/ samples /. Для того, щоб мати змогу візуалізувати дані у & kcachegrind;, виконайте таку команду у порожній теці: opreport - gdf _BAR_ op2callgrind Ця команда призведе до створення багатьох файлів, по одному файлу на кожну з програм, які було запущено у системі. Кожен з цих файлів можна окремо завантажити до & kcachegrind;.
User Interface Basics
Основи інтерфейсу користувача
When starting & kcachegrind; with a profile data file as argument, or after loading one with File Open, you will see a navigation panel containing the function list at the left; and, on the right the main part, an area with views for a selected function. This view area can be arbitrarily configured to show multiple views at once.
Після запуску & kcachegrind; з аргументом у вигляді назви файла даних профілювання або після завантаження цього файла за допомогою пункту меню Файл Відкрити... ви побачите панель навігації, на якій міститиметься список функцій, розташовану ліворуч, праворуч же буде показано основну частину з даними візуалізації обраної функції. Цю область візуалізації можна налаштувати довільним чином так, щоб у ній було показано декілька візуалізацій одночасно.
At first start, this area will be divided into a top and a bottom part, each with different tab-selectable views. To move views, use the tabs' context menu, and adjust the splitters between views. To switch quickly between different viewing layouts, use Ctrl; → View Layout Go to Next and Ctrl; ← View Layout Go to Previous.
Після першого запуску програми цю область буде поділено на верхню і нижню частини, у кожній з яких ви побачите декілька вкладок з панелями перегляду. Для пересування цими панелями скористайтеся контекстними меню вкладок. Ви також можете скоригувати розміри вкладок за допомогою панелей роздільників. Щоб пришвидшити перемикання між різними компонуваннями перегляду, скористайтеся пунктами меню Ctrl; → Перегляд Розкладка Перейти до наступного і Ctrl; ← Перегляд Розкладка Перейти до попереднього.
The active event type is important for visualization: for & callgrind;, this is, for example, cache misses or cycle estimation; for & oprofile;, this is Timer in the simplest case. You can change the event type via a combobox in the toolbar or in the Event Type view. A first overview of the runtime characteristics should be given when you select function main in the left list; look then at the call graph view. There, you see the calls occurring in your program. Note that the call graph view only shows functions with high event count. By double-clicking a function in the graph, it will change to show the called functions around the selected one.
Для візуалізації є важливим вибір активного типу подій: для & callgrind; це є, наприклад, промахи кешу або оцінка циклічності; для & oprofile; це є « Таймер » у найпростішому випадку. Ви можете змінити тип події за допомогою спадного списку на панелі інструментів або у перегляді типу подій. Перший огляд характеристик запуску можна отримати, якщо ви оберете функцію main у списку, розташованому ліворуч. Погляньте на візуалізацію графу виклику; там ви зможете побачити виклики, які було здійснено у вашій програмі. Зауважте, що у перегляді графу викликів буде показано лише функції з високими значеннями кількості подій. Подвійне клацання на позначках функцій на графі, перегляд буде змінено так, щоб було показано функції викликані вибраною вами функцією.
To explore the & GUI; further, in addition to this manual, also have a look at the documentation section on the Web site. Also, every widget in & kcachegrind; has What's this help.
Щоб краще вивчити можливості графічного інтерфейсу програми на додачу до цього підручника, зазирніть до розділу документації на веб- сайті. Крім того, кожен з віджетів & kcachegrind; має довідку Що це?.
This chapter explains some concepts of the & kcachegrind;, and introduces terms used in the interface.
У цій главі наведено пояснення деяких концепцій & kcachegrind; та наведено визначення термінів, що вживаються у інтерфейсі програми.
The Data Model for Profile Data
Модель даних для даних профілювання
Cost Entities
Елементи вартості
Cost counts of event types (like L2 Misses) are attributed to cost entities, which are items with relationship to source code or data structures of a given program. Cost entities not only can be simple code or data positions, but also position tuples. For example, a call has a source and a target, or a data address can have a data type and a code position where its allocation happened.
Лічильники вартості типів подій (на зразок промахів L2) пов’ язано з елементами вартості, які є елементами відносно вихідних кодів або структур даних вказаної програми. Елементи вартості можуть бути не лише прості позиції у коді або даних, але і пари позицій. Наприклад, у виклику є джерело і призначення або адреса у даних може мати тип даних і позицію у коді, з якої було викликано її виділення.
Positions tuples: Call from instruction address to target function. Call from source line to target function. Call from source function to target function. (Un)conditional jump from source to target instruction. (Un)conditional jump from source to target line. Jumps between functions are not allowed, as this makes no sense in a call graph; thus, constructs like exception handling and long jumps in C have to be translated to popping the call stack as needed.
Пари позицій: Виклик з адреси інструкції до функції призначення. Виклик з рядка вихідних кодів до функції призначення. Виклик з функції вихідних кодів до функції призначення. (Без) умовний перехід з вихідних кодів до інструкції призначення. (Без) умовний перехід з вихідних кодів до рядка призначення. Переходи між функціями заборонено, оскільки такі переходи не мають сенсу у графі викликів; таким чином, конструкції на зразок обробки виключень і довгих переходів у C слід перетворити, за потреби, на виштовхування стеку викликів.
Event Types
Типи подій
Arbitrary event types can be specified in the profile data by giving them a name. Their cost related to a cost entity is a 64-bit integer.
Довільні типи подій може бути визначено у даних профілювання наданням їм назви. Їх вартість відносно елемента вартості є 64- розрядним цілим числом.
Event types whose costs are specified in a profile data file are called real events. Additionally, one can specify formulas for event types calculated from real events, which are called inherited events.
Типи подій, чию вартість вказано у файлі даних профілювання, називаються справжніми подіями. Крім того, ви можете вказати формули для типів подій, обчислені на основі справжніх подій, які називаються успадкованими подіями.
Visualization State
Стан візуалізації
The visualization state of a & kcachegrind; window includes: the primary and secondary event type chosen for display, the function grouping (used in the Function Profile list and entity coloring), the profile parts whose costs are to be included in visualization, an active cost entity (eg; a function selected from the function profile sidedock), a selected cost entity. This state influences the views.
Стан візуалізації вікна & kcachegrind; включає: основні і вторинні типи подій, обраних для показу, групування функцій (використовується у списку Функції профілювання і розфарбування елементів), частини профілювання, чиї вартості слід включити до візуалізації, активний елемент вартості (наприклад, вибраної на панелі функцій функції), вибраний елемент вартості. Цей стан впливає на візуалізацію.
Views are always shown for one cost entity, the active one. When a given view is inappropriate for a cost entity, it is disabled: when selecting & eg; an & ELF; object in the group list, source annotation makes no sense.
Вміст панелі перегляду завжди відповідатиме одному, активному, елементу вартості. Якщо певна панель не відповідає елементу вартості, її буде вимкнено (наприклад, якщо вибрати об’ єкт & ELF; у списку групи, коментарі у вихідних кодах не матимуть сенсу).
For example, for an active function, the callee list shows all the functions called from the active one: one can select one of these functions without making it active. Also, if the call graph is shown beside, it will automatically select the same function.
Наприклад, для активної функції, у списку викликаних буде показано всі функції, які було викликано з активної функції: ви можете обрати одну з цих функцій, не роблячи її активною; крім того, якщо граф викликів показано поруч, у ньому також буде вибрано відповідну функцію.
Parts of the & GUI;
Частини графічного інтерфейсу користувача
Sidedocks
Бічні панелі
Sidedocks are side windows which can be placed at any border of a & kcachegrind; window. They always contain a list of cost entities sorted in some way.
Бічні панелі є бічними вікнами, які можна розташовувати поряд з будь- якою з меж вікна & kcachegrind;. На них завжди міститься список елементів вартості, впорядкованих у той же спосіб.
The Function Profile is a list of functions showing inclusive and exclusive cost, call count, name and position of functions.
Профіль функцій є списком, у якому буде показано включену і виключну вартість, кількість викликів, назву і позицію функцій.
Parts Overview
Огляд частин
Call Stack
Стек викликів
View Area
Область перегляду
The view area, typically the right part of a & kcachegrind; main window, is made up of one (default) or more tabs, lined up either horizontally or vertically. Each tab holds different views of only one cost entity at a time. The name of this entity is given at the top of the tab. If there are multiple tabs, only one is active. The entity name in the active tab is shown in bold, and determines the active cost entity of the & kcachegrind; window.
Область перегляду, яка типово розташована у правій частині головного вікна & kcachegrind;, складається з одної (типової) або декількох вкладок, вирівняних горизонтально або вертикально. У кожному з переглядів вкладки містяться різноманітні дані для одного окремого елемента вартості. Назву цього елемента буде показано у верхній частині вкладки. Якщо відкрито декілька вкладок, лише одна з них буде активною. Назву елемента у активному перегляді вкладок буде показано жирним шрифтом, вона визначає активний елемент вартості вікна & kcachegrind;.
Areas of a Tab
Області у вкладках
Each tab can hold up to four view areas, namely Top, Right, Left, and Bottom. Each area can hold multiple stacked views. The visible part of an area is selected by a tab bar. The tab bars of the top and right area are at the top; the tab bars of the left and bottom area are at the bottom. You can specify which kind of view should go into which area by using the tabs' context menus.
На кожній з вкладок може міститися до чотирьох областей перегляду, а саме верхня, права, ліва і нижня. У кожній з областей можуть міститися декілька переглядів візуалізації у вигляді стосу. Видиму частину області можна обрати за допомогою панелі вкладок. Панелі вкладок верхньої і правої областей знаходяться вгорі; панелі вкладок лівої і нижньої областей знаходяться внизу. Ви можете визначати різновид перегляду для кожної з областей за допомогою контекстних меню вкладок.
Synchronized View with Selected Entity in a Tab
Синхронізований перегляд з вибором елемента у вкладці
Besides an active entity, each tab has a selected entity. As most view types show multiple entities with the active one somehow centered, you can change the selected item by navigating inside a view (by clicking with the mouse or using the keyboard). Typically, selected items are shown in a highlighted state. By changing the selected entity in one of the views of a tab, all other views highlight the new selected entity accordingly.
Окрім активного елемента, у кожній вкладці є вибраний елемент. Оскільки у більшості з типів перегляду буде показано декілька елементів, активний елемент буде певним чином розташовано по центру, ви можете змінити вибраний елемент навігацією на панелі перегляду (клацанням кнопкою миші або за допомогою клавіатури). Типово, вибрані елементи буде підсвічено. Зміною вибраного елемента у одній з областей перегляду з вкладками, на всіх інших панелях у перегляді з вкладками буде відповідно підсвічено новий вибраний елемент.
Synchronization between Tabs
Синхронізація між вкладками
If there are multiple tabs, a selection change in one tab leads to an activation change in the next tab, be it right of the former or under it. This kind of linkage should, for example, allow for fast browsing in call graphs.
Якщо буде відкрито декілька вкладок, зміна вибраного елемента на одній з вкладок призведе до зміни активації у наступному (праворуч/ внизу) перегляді з вкладками. Цей тип прив’ язки, наприклад, забезпечує швидку навігацію графами викликів.
Layouts
Компонування
Flat Profile
Плоский профіль
The Flat Profile contains a group list and a function list. The group list contains all groups where cost is spent in, depending on the chosen group type. The group list is hidden when grouping is switched off.
Плоский профіль містить список груп і список функцій. У списку груп міститься перелік всіх груп, на які витрачаються ресурси системи, залежно від обраного типу груп. Список груп буде приховано, якщо групування буде вимкнено.
The function list contains the functions of the selected group (or all functions if grouping is switched off), ordered by some column, & eg; inclusive or self costs spent therein. There is a maximum number of functions shown in the list, configurable in Settings Configure KCachegrind.
У списку функцій міститься перелік функцій вибраної групи (або всіх функцій, якщо групування вимкнено), впорядкованих за певним стовпчиком, наприклад включених або власних вартостей. Існує обмеження на максимальну кількість функцій, показаних у списку, його можна налаштувати за допомогою вікна, яке відкривається пунктом меню Параметри Налаштувати & kcachegrind;.
In a profile run, multiple profile data files can be produced, which can be loaded together into & kcachegrind;. The Parts Overview sidedock shows these, ordered horizontally according to creation time; the rectangle sizes are proportional to the cost spent each part. You can select one or several parts to constrain the costs shown in the other & kcachegrind; views to these parts only.
Під час виконання профілювання може бути створено декілька файлів даних профілювання, їх можна завантажити разом у & kcachegrind;. Ці файли буде показано на панелі Огляд частин, файли буде впорядковано у відповідності до часу створення; розміри прямокутників будуть пропорційними до вартості відповідних частин. Ви можете обрати одну або декілька частин, щоб обмежити перелік вартостей, які буде показано у інших переглядах & kcachegrind;, лише цими частинами.
The parts are further subdivided between a partitioning and an inclusive cost split mode:
Частини поділяються на менші частини. Існує режим розбиття і розділення включеної вартості:
Partitioning Mode
Режим розбиття
The partitioning is shown in groups for a profile data part, according to the group type selected. For example, if & ELF; object groups are selected, you see colored rectangles for each used & ELF; object (shared library or executable), sized according to the cost spent therein.
Ви побачите розбиття на групи для частини даних профілювання, відповідно до обраного типу груп. Наприклад, якщо обрано групи об’ єктів & ELF;, ви побачите розфарбовані прямокутники для кожного використаного об’ єкта & ELF; (спільної бібліотеки або виконуваного файла), їх розмір буде пропорційним до вартості використання ресурсів системи.
Diagram Mode
Режим діаграм
A rectangle showing the inclusive cost of the current active function in the part is shown. This, again, is split up to show the inclusive costs of its callees.
Буде показано прямокутник, що відповідає включеній вартості поточної активної функції у частині. Цей перегляд, знову, буде розділено для того, щоб показати включені вартості викликаних елементів.
This is a purely fictional most probable call stack. It is built up by starting with the current active function, and adds the callers and callees with highest cost at the top and to bottom.
Це цілком уявний « найбільш ймовірний » стек викликів. Його буде побудовано починаючи з поточної активної функції, туди буде додано виклики і викликані елементи з найвищою вартістю у верхню і нижню частину списку.
The Cost and Calls columns show the cost used for all calls from the function in the line above.
У стовпчиках Вартість і Виклики буде показано вартість, використану для всіх викликів з функції у рядку, розташованому вище.
Event Type
Тип події
The Event Type list shows all cost types available and the corresponding self and inclusive cost of the current active function for that event type.
У списку Тип подій буде показано всі доступні типи вартості і відповідну власну і включену вартості поточної активної функції для відповідного типу події.
By choosing an event type from the list, you change the type of costs shown all over & kcachegrind; to the selected one.
Вибором певного типу подій зі списку ви можете змінити тип вартостей, який буде показано у всіх інших переглядах & kcachegrind;, які буде обрано.
Call Lists
Списки викликів
These lists show calls to and from the current active function. With All Callers and All Callees are meant those functions reachable in the caller and callee direction, even when other functions are in between.
Тут буде показано список викликів до/ з поточної активної функції. За допомогою панелей Всі виклики і Всі викликані функції можна переглянути всі функції, яких можна досягти вздовж ланцюжка виклики/ викликані, навіть якщо існують інші проміжні функції.
Call list views include:
У переглядах списку викликів містяться:
Direct Callers
Безпосередні зовнішні виклики
Direct Callees
Безпосередні внутрішні виклики
All Callers
Всі зовнішні виклики
All Callees
Всі внутрішні виклики
Maps
Карти
A treemap view of the primary event type, up or down the call hierarchy. Each colored rectangle represents a function; its size is approximately proportional to the cost spent therein while the active function is running (however, there are drawing constrains).
Перегляд деревоподібної карти основного типу подій, вгору або вниз ієрархією викликів. Кожному розфарбованому прямокутнику відповідає функція, розмір прямокутника приблизно пропорційний до вартості у ресурсах системи виконання активної функції (крім того, існують певні обмеження малювання).
For the Caller Map, the graph shows the nested hierarchy of all callers of the currently activated function; for the Callee Map, it shows that of all callees.
У разі показу Карта викликів на графі буде показано ієрархію всіх функцій, що викликали поточну активовану функцію. У разі показу Карти викликаних буде показано ієрархію всіх функцій викликаних активованою функцією.
Appearance options can be found in the context menu. To get exact size proportions, choose Skip Incorrect Borders. As this mode can be very time-consuming, you may want to limit the maximum drawn nesting level before. Best determinates the split direction for children from the aspect ratio of the parent. Always Best decides on remaining space for each sibling. Ignore Proportions takes space for function name drawing before drawing children. Note that size proportions can get heavily wrong.
Параметри вигляду можна знайти у контекстному меню. Щоб отримати точні пропорції, позначте пункт Пропустити некоректні границі. Оскільки побудова графів у подібному режимі є досить тривалою, ймовірно, вам слід обмежити максимальний рівень вкладеності до початку побудови. За вибору Найкращого режиму напрямок поділу для дочірніх елементів буде визначено зі співвідношення сторін батьківського елемента. За вибору режиму Завжди найкращий вибір відбуватиметься на основі доступного простору для елементів одного рівня. У режимі Ігнорувати пропорції прості для показу назви функції буде забрано перед малюванням дочірніх елементів. Зауважте, що пропорції за розмірами можуть бути дуже неточними.
Keyboard navigation is available with the left and right arrow keys for traversing siblings, and up and down arrow keys to go a nesting level up and down. & Enter; activates the current item.
Ви можете скористатися клавішами зі стрілками ліворуч/ праворуч для пересування між елементами одного рівня, клавіші зі стрілочками вгору/ вниз можна використати для пересування між рівнями вкладеності. Клавіша & Enter; активує поточний елемент.
Call Graph
Граф викликів
This view shows the call graph around the active function. The cost shown is only the cost spent while the active function was actually running, & ie; the cost shown for main() (if it's visible) should be the same as the cost of the active function, as that is the part of inclusive cost of main() spent while the active function was running.
У цьому перегляді буде показано граф викликів навколо активної функції. Показана вартість є лише вартістю, яку було витрачено під час виконання самої активної функції; тобто вартість, показану для функції main (), — якщо вона є видимою, — має бути тією самою, що і вартість активної функції, оскільки вона є частиною включеної вартості main (), витраченої під час виконання активної функції.
For cycles, blue call arrows indicate that this is an artificial call, which never actually happened, added for correct drawing.
Для циклів сині стрілки викликів позначатимуть, що ви маєте справу з штучним викликом, доданим для правильного показу, цей виклик ніколи не виконується.
If the graph is larger than the drawing area, a bird's eye view is shown on a side. There are view options similar to those of the call maps; the selected function is highlighted.
Якщо розмір графу перевищує площу віджета, у одному з кутів буде показано елемент загального перегляду. Існують подібні до карти викликів параметри візуалізації, вибрану функцію буде підсвічено.
The annotated source or assembler lists show the source lines or disassembled instructions of the current active function together with the (self) cost spent executing the code of a source line or instruction. If there was a call, lines with details on the call are inserted into the source: the (inclusive) cost spent inside of the call, the number of calls happening, and the call destination.
У коментованих списках вихідних кодів/ кодів асемблера буде показано рядки вихідних кодів/ дизасембльовані інструкції поточної активної функції, а також (власну) вартість на виконання коду рядка вихідних кодів/ інструкції. Якщо це був виклик, у вихідні коди буде вставлено рядки з подробицями щодо виклику: (включену) вартість виклику, кількість виконаних викликів і призначення викликів.
Select such a call information line to activate the call destination.
Оберіть певний рядок відомостей про виклики, щоб активувати призначення виклику.
The main & kcachegrind; window
Головне вікно & kcachegrind;