natgillin/translations-raw huggingface dataset:
More advanced use is to dump out profile data whenever a given function of your application is called. E. g. for & konqueror;, to see profile data only for the rendering of a Web page, you could decide to dump the data whenever you select the menu item View Reload. This corresponds to a call to KonqMainWindow: :slotReload. Use: valgrind --tool=callgrind --dump-before=KonqMainWindow: :slotReload konqueror This will produce multiple profile data files with an additional sequential number at the end of the filename. A file without such an number at the end (only ending in the process PID) will also be produced; by loading this file into & kcachegrind;, all others are loaded too, and can be seen in the Parts Overview and Parts list.
Mer avancerad användning är att lagra profileringsdata så fort en given funktion i programmet anropas. För att t. ex. bara se profileringsdata när en webbsida ritas upp i & konqueror;, skulle du kunna bestämma att lagra data så fort du väljer menyalternativet Visa Uppdatera. Det motsvarar ett anrop till KonqMainWindow:: slotReload. Använd valgrind -- tool=callgrind -- dump- before=KonqMainWindow:: slotReload konqueror Det skapar flera profileringsdatafiler med ett ytterligare sekvensnummer i slutet på filnamnet. En fil utan ett sådant nummer (som bara slutar med process- id) skapas också. Genom att ladda den filen i & kcachegrind;, så laddas alla övriga också, och kan ses i översikten över delar och i listan med delar.
& oprofile; is available from its home page. Follow the installation instructions on the Web site, but, before you do, check whether your distribution does not already provide it as package (like & SuSE;).
& oprofile; är tillgänglig från dess hemsida. Följ installeringsinstruktionerna på webbplatsen, men innan du gör det kontrollera om din distribution inte redan tillhandahåller det som ett paket (som & SuSE;).
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.
Profilering på systemnivå är bara tillåtet för systemadministratören, eftersom alla åtgärder i systemet kan observeras. Därför måste följande göras som systemadministratör. Anpassa först profileringsprocessen med det grafiska gränssnittet oprof_ start, eller kommandoradverktyget opcontrol. Standardinställningen ska vara tidsläge (TBS, se inledningen). För att starta mätningen, kör opcontrol - s. Kör därefter programmet du är intresserad av, och skriv efteråt opcontrol - d. Det skriver ut mätresultaten i filer under katalogen / var/ lib/ oprofile/ samples /. För att kunna visualisera data i & kcachegrind; gör följande i en tom katalog: opreport - gdf _BAR_ op2callgrind Det skapar många filer, en för varje program som kördes på systemet. Var och en kan laddas i & kcachegrind; för sig.
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.
När & kcachegrind; startas med en profileringsdatafil som argument, eller efter en fil har laddats med Arkiv Öppna, ser du en sidopanel som innehåller funktionslistan till vänster, och till höger huvudområdet för visualiseringar av den valda funktionen. Visualiseringsområdet kan ställas in godtyckligt för att visa flera visualiseringar samtidigt.
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.
Efter första start är området uppdelad i en övre och undre del, var och en med olika vyer valbara via flikar. Använd flikarnas sammanhangsberoende menyer för att flytta vyer, och justera avdelarna mellan vyer. För att snabbt byta mellan olika layouter, använd Ctrl; → Visa Layout Gå till nästa och Ctrl; ← Visa Layout Gå till föregående.
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.
Den aktiva händelsetypen är viktig för visualiseringarna: för & callgrind; är det till exempel cachemissar eller cykeluppskattningar, för & oprofile; är det timer i det enklaste fallet. Du kan ändra händelsetyp via en kombinationsruta i verktygsraden eller i vyn Händelsetyp. En första översikt över beteendet under körning bör ges när du väljer funktionen main i listan till vänster, och tittar på visualiseringen anropsdiagram. Där ser du anropen som sker i programmet. Observera att anropsdiagramvyn bara visar funktioner med ett högt händelseantal. Genom att dubbelklicka på en funktion i diagrammet ändras det så att anropade funktioner omkring den valda visas.
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.
För att utforska det grafiska gränssnittet ytterligare, förutom den här handboken, ta också en titt på dokumentationsavsnittet på webbsidan. Förutom detta, har varje grafisk komponent i & kcachegrind; hjälp via Vad är det här?.
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.
Kostnadsantal för händelsetyper (som L2 missar) tilldelas till kostnadsenheter, som är objekt med förhållanden till källkod eller datastrukturer i ett givet program. Kostnadsenheter kan inte bara vara enkla kod - eller datapositioner, utan också sammansatta positioner. Ett anrop kan till exempel ha en källa och ett mål, eller en dataadress kan ha en datatyp och en kodposition där data har skapats.
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.
Positionsinformation: Anrop från instruktionsadress till målfunktion. Anrop från källkodsrad till målfunktion. Anrop från källfunktion till målfunktion. (O) villkorligt hopp från käll - till målinstruktion. (O) villkorligt hopp från käll - till målrad. Hopp mellan funktioner tillåts inte, eftersom det inte är vettigt i ett anropsdiagram. Därför måste konstruktioner som undantagshantering och långa hopp i C översättas genom att gå bakåt i anropsstacken efter behov.
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.
Händelsetyper vars kostnad anges i en profileringsdatafil kallas verkliga händelser. Dessutom kan man ange formler för händelsetyper som beräknas från verkliga händelser, som kallas ärvda händelser.
Visualization State
Visualiseringstillstånd
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.
Visualiseringstillståndet i ett fönster i & kcachegrind; omfattar: den primära och sekundära händelsetypen som valts att visas, funktionsgrupperingen (används i listan Funktionsprofilering och enhetsfärgningen), profileringsdelarna vars kostnad ska ingå i visualiseringen, en aktiv kostnadsenhet (t. ex. en funktion som valts i sidopanelen för funktionsprofilering), en vald kostnadsenhet. Tillståndet påverkar visualiseringarna.
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.
Visualiseringar visas bara för en kostnadsenhet, den aktiva. Om en given visualisering inte är lämplig för en kostnadsenhet, inaktiveras den: om t. ex. ett & ELF; - objekt väljes i grupplistan, är inte källkodskommentarer vettiga.
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.
För en aktiv funktion visar till exempel listan över de som blir anropade alla funktioner som anropas från den aktiva funktionen. Man kan välja en av funktionerna utan att göra den aktiv. Om anropsdiagrammet dessutom visas intill, väljes automatiskt samma funktion där.
Parts of the & GUI;
Delar i det grafiska gränssnittet
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.
Sidopaneler är sidofönster som kan placeras vid vilken kant som helst i ett fönster i & kcachegrind;. De innehåller alltid en lista med kostnadsenheter sorterade på något sätt.
The Function Profile is a list of functions showing inclusive and exclusive cost, call count, name and position of functions.
Funktionsprofilering är en lista med funktioner som visar kostnaden som uppstår i och utanför funktionen, namn och funktionens position.
View Area
Visualiseringsområdet
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.
Visualiseringsområdet, typiskt den högra delen av ett huvudfönster i & kcachegrind;, består av en (förvalt värde) eller flera flikar, antingen uppradade horisontellt eller vertikalt. Varje flik innehåller olika visualiseringar av en enda kostnadsenhet åt gången. Namnet på enheten visas längst upp i fliken. Om det finns flera flikar, är bara en aktiv. Enhetsnamnet i den aktiva fliken visas med fetstil, och avgör den aktiva kostnadsenheten i & kcachegrind; s fönster.
Areas of a Tab
Områden under en flik
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.
Varje flik kan innehålla upp till fyra visningsområden, närmare bestämt uppe, höger, vänster och nere. Varje område kan innehålla flera visualiseringar ovanpå varandra. Den synliga delen av ett område väljes med en flikrad. Flikrader för det övre och högra området är längst upp, flikrader för det vänstra och nedre området är längst ner. Du kan ange vilka sorters visualiseringar som ska hamna i de olika områdena genom att använda flikarnas sammanhangsberoende menyer.
Synchronized View with Selected Entity in a Tab
Synkroniserad vy med vald enhet under en flik
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.
Förutom en aktiv enhet, har varje flik en vald enhet. Eftersom de flesta visualiseringstyper visar flera enheter med den aktiva centrerad på något sätt, kan du ändra valt objekt genom att navigera i en visualisering (genom att klicka med musen eller använda tangentbordet). Ofta visas valda objekt med markeringar. Genom att ändra vald enhet i en av visualiseringarna under fliken, markeras den nyvalda enheten i alla andra visualiseringar under fliken på motsvarande sätt.
Synchronization between Tabs
Synkronisering mellan flikar
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.
Om det finns flera flikar, gör en ändring av markeringen under en flik att en aktivering ändras under nästa flik (till höger eller nedanför). Den här sortens länkning bör till exempel möjliggöra snabb bläddring i anropsdiagram.
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.
Den flata profilen innehåller en grupp - och en funktionsvalslista. Grupplistan innehåller alla grupper där kostnader uppstår, beroende på markerad grupptyp. Grupplistan döljs när gruppering stängs av.
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.
Funktionslistan innehåller funktionerna i den valda gruppen (eller alla funktioner om gruppering är avstängd), ordnade enligt någon kolumn, t. ex. ingående kostnad eller använd egenkostnad. Det finns ett maximalt antal funktioner som visas i listan, vilket kan ställas in med Inställningar Anpassa 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.
Under en profileringskörning kan flera profileringsdatafiler skapas, som kan laddas tillsammans i & kcachegrind;. Sidorutan Översikt över delar visar dem, horisontellt ordnade enligt tiden de skapades. Storleken på rektanglarna är proportionell mot kostnaden som uppstått i delarna. Du kan välja en eller flera delar för att begränsa kostnaderna som visas i övriga vyer i & kcachegrind; till bara dessa delar.
The parts are further subdivided between a partitioning and an inclusive cost split mode:
Delarna är ytterligare uppdelade mellan ett uppdelningsläge och ett samlat delningsläge med kostnad:
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.
Uppdelningen visas i grupper för en spårningsdatadel, enligt vald grupptyp. Om till exempel & ELF; - objektgrupper är valt, ser du färgade rektanglar för varje använt & ELF; - objekt (delat bibliotek eller körbart program), med storlek enligt ingående kostnad.
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.
En rektangel som visar samlad kostnad för aktuell markerad funktion i delen visas. Den delas återigen upp, för att visa samlade kostnader för anropade funktioner.
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.
Det här är en rent uppdiktad mest trolig anropsstack. Den byggs upp genom att börja med aktuell markerad funktion och lägga till de som anropar och anropade med högst kostnad längst upp och längst ner.
The Cost and Calls columns show the cost used for all calls from the function in the line above.
Kolumnerna Kostnad och Anrop visar kostnad som behövs för alla anrop från funktionen på raden ovan.
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.
Listan Händelsetyp visar alla tillgängliga kostnadsslag och vad som är egenkostnaden och samlade kostnaden för aktuell markerad funktion för kostnadsslagen.
By choosing an event type from the list, you change the type of costs shown all over & kcachegrind; to the selected one.
Genom att välja en kostnadsslag i listan, ändrar du kostnadsslag för kostnader som visas överallt i & kcachegrind; till det valda.
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.
Listorna visar anrop till och från den nuvarande aktiva funktionen. Med Alla de som anropar och Alla anropade, menas funktioner som kan nås i båda riktningarna, även om andra funktioner finns emellan.
Direct Callers
De som anropar direkt
Direct Callees
De som blir anropade direkt
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).
En visualisering med träddiagram av den primära händelsetypen, uppåt eller neråt i anropshierarkin. Varje färglagd rektangel motsvarar en funktion. Storleken är ungefär proportionell mot kostnaden som uppstår i den, medan den aktiva funktionen kör (det finns dock begränsningar i återgivningen).
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.
För kartan över de som anropar, visar diagrammet hierarkin i flera nivåer för alla de som anropar den aktuella aktiverade funktionen. För kartan över de som blir anropade visar det hierarkin i flera nivåer för alla de som blir anropade av den aktuella aktiverade funktionen.
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.
Utseendealternativ hittas i den sammanhangsberoende menyn. För att få exakta storleksförhållanden, välj Bara riktiga kanter. Eftersom läget kan ta mycket lång tid, kanske du först vill begränsa maximalt antal återgivna nivåer. Bäst avgör delningsriktningen för inre funktioner från den yttres proportion. Alltid bäst beslutar om återstående utrymme för varje funktion på samma nivå. Ignorera proportioner tar utrymme för att rita funktionsnamnet innan inre funktioner ritas. Observera att storleksförhållanden kan bli väsentligt felaktiga.
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.
Tangentbordsnavigering är tillgänglig med vänster och höger piltangenter för att gå igenom objekt på samma nivå, och uppåt/ neråt piltangenter för att gå upp eller ner en nivå, Returtangenten aktiverar aktuellt objekt.
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.
Den här vyn visar omgivningen till anropsdiagrammet för den aktiva funktionen. Kostnaden som visas är bara kostnaden som uppstår när den aktiva funktionen verkligen körde, dvs. kostnaden som visas för main (), om det syns, ska vara samma som kostanden för den aktiva funktionen, eftersom det är den del av den tillhörande kostnaden som uppstår i main () medan den aktiva funktionen kör.
For cycles, blue call arrows indicate that this is an artificial call, which never actually happened, added for correct drawing.
För cykler, anger blåa anropspilar att det här är ett artificiellt anrop som lagts till för riktig uppritning, som i själva verket aldrig inträffat.
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.
Om diagrammet är större än komponentens yta, visas en översiktsruta i ena hörnet. Det finns liknande visualiseringsalternativ som i anropsträdkartan. Den valda funktionen markeras.
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.
Den kommenterade källkoden eller assemblerlistan visar källkodsraderna eller maskinkodsinstruktionerna för aktuell markerad funktion tillsammans med (egen) kostnaden som uppstår när en källkodsrad eller instruktion utförs. Om det är en anropsinstruktion, infogas rader med information om anropet som sker i koden: Detta är den samlade kostnaden som uppstår inne i anropet, antal anrop som sker, och anropsmålet.
Opens an empty top-level window in which you can load profile data. This action is not really necessary, as File Open gives you a new top-level window if the current one already shows some data.
Öppnar ett tomt toppnivåfönster där du kan ladda profileringsdata. Det här alternativet behövs egentligen inte, eftersom Arkiv Öppna... ger ett nytt toppnivåfönster om det nuvarande redan visar någon data.