natgillin/translations-raw huggingface dataset:
Først vil man generere ydelsesdata, ved at måle aspekter af et programs karakteristik ved kørsel, ved at bruge et profileringsværktøj. & kcachegrind; indeholder ikke noget profileringsværktøj, men udmærker sig når det bruges i kombination med & callgrind;. Det kan også, ved at anvende en konverter, bruges til at visualisere data produceret af & oprofile;. Selvom dette ikke er denne manuals opgave at dokumentere profilering med disse værktøjer, får næste sektion dig hurtigt i gang med en kort guide.
First, one wants to generate performance data by measuring aspects of the runtime characteristics of an application, using a profiling tool. & kcachegrind; itself does not include any profiling tool, but is good in being used together with & callgrind;, and by using a converter, also can be used to visualise data produced with & oprofile;. Although the scope of this manual is not to document profiling with these tools, the next section provides short quickstart tutorials to get you started.
& callgrind;
& callgrind;
& callgrind; er til rådighed fra http: // kcachegrind. sf. net Læg mærke til at det tidligere hed & calltree;, men dette navn var misvisende.
& callgrind; is available from http: / /kcachegrind. sf. net. Note that it previously was called & calltree;, but that name was misleading.
Normalt bruges callgrind som præfiks på kommandolinjen når du starter dit program, således: til præfiks kommando linje til start program tommer program a fil Indlæstkcachegrind;.
Most common use is to prefix the command line to start your application with callgrind, like in callgrind myprogram myargs At program termination, a file callgrind. out. pid will be generated which can be loaded into & kcachegrind;.
Mere avanceret brug ville være at dumpe profildata hver gang en given funktion i din applikation bliver kaldt. F. eks. for konqueror for at se profildata kun for optegning af en netside, kunne man vælge at dumpe data hver gang man vælger vis/ genopfrisk. Dette svarer til at kalde KonqMainWindow:: slotReload. Brug callgrind -- dump- before=KonqMainWindow:: slotReload konqueror. Dette producerer flere profildatafiler med et ekstra sekventielt nummer i slutningen af filnavnet. En fil uden et sådant nummer (som kun ender på proces- PID) produceres også. Ved at indlæse filen i & kcachegrind;, indlæses alle de andre også og kan ses i partoversigten og partlisten.
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 rendering 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 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.
& oprofile;
& oprofile;
& oprofile; er tilgængelig fra http: // oprofile. sf. net. Følg installationsinstruktionerne på siden. Kontrollér dog først om ikke din distribution allerede har en pakke til rådighed (som & SuSE;).
& oprofile; is available from http: / /oprofile. sf. net. Follow the installation instructions on the web site; but, before you do, check if your distribution does not already provide it as package (like SuSE).
Profilering af hele systemet er kun tilladt for root, fordi alle handlinger på systemet kan observeres. Derfor skal man gøre det følgende som root. Først konfigureres profileringsprocessen, vha. & GUI; oprof_ start eller med kommandolinjeværktøjet opcontrol. Standardkonfigurationen bør være timertilstand (se introduktionen). For at begynde målingen køres opcontrol - s. Dernæst køres applikationen du er interesseret i og bagefter udføres opcontrol - d. Dette udskriver måleresultaterne til filer under kataloget / var/ lib/ oprofile/ samples. For at kunne visualisere dataene i & kcachegrind; udføres dette i et tomt katalog: opreport - gdf _BAR_ op2callgrind. Dette producerer en masse filer, en for hvert program der kørte på systemet. Filerne kan indlæses i & kcachegrind; hver for sig.
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 directory / var/ lib/ oprofile/ samples/. To be able to visualise 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.
Grundlæggende om brugergrænseflade
User Interface Basics
Når & kcachegrind; starter med en profildatafil som argument eller efter at have indlæst en med Fil/ Åbn, vil du se en sidebar med funktionslisten til venstre og hovedparten, et område med grafer, til højre. Grafområdet kan indstilles arbitrært, så det kan vise flere grafer på én gang.
When starting & kcachegrind; with a profile data file as argument, or after loading one with File/ Open, you will see a sidebar containing the function list at the left; and, on the right the main part, an area with visualisations for a selected function. This visualisation area can be arbitrarily configured to show multiple visualisations at once.
Vigtigt for visualiseringen er den aktive begivenhedstype. For & callgrind; er den f. eks. ikke- ramt cache eller cyklusestimering. For & oprofile; er den "Timer" i den simpleste form. Du kan ændre begivenhedstypen via en kombinationsboks i værktøjslinjen eller i begivenhedstypevisningen. Når du vælger funktionen main og ser på kaldgrafen, vises der et overblik over kørselstidskarakteristikken. Der kan du se kald der sker i dit program. Læg mærke til at kaldgrafen kun viser funktioner med et højt antal begivenheder. Ved at dobbeltklikke på funktionen i grafen, ændres den så der vises kaldte funktioner omkring den markerede.
The active event type is important for visualisation: 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, and look at the call graph visualisation; there, you see calls happening 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.
For at udforske grænsefladen yderligere, bør du, udover at se i denne håndbog, også se nærmere på dokumentationen på hjemmesiden http: // kcachegrind. sf. net. Derudover har hver kontrol i & kcachegrind; Hvad er dette hjælp.
To explore the GUI further, in addition to this manual, also have a look at the documentation section on the web site http: / /kcachegrind. sf. net. Also, every widget in & kcachegrind; has What 's this help.
Grundlæggende begreber
Basic Concepts
Dette kapitel forklarer nogle koncepter i & kcachegrind; og introducerer udtryk brugt i grænsefladen.
This chapter explains some concepts of the & kcachegrind;, and introduces terms used in the interface.
Datamodel til profildata
The Data Model for Profile Data
Omkostningentiteter
Cost Entities
Omkostningsoptælling af begivenhedstyper (som ikke- ramt L2) skyldes omkostningsentiteter i forbindelse med kildekode eller datastrukturer i et givet program. Omkostningsentiteter kan være ikke blot simpel kode eller datapositioner, men også positionstupler. F. eks. et kald har en kilde og et mål eller en dataadresse kan have en datatype og en kodeposition hvor allokeringen er foregået.
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 an code position where its allocation happened.
Positionstupler: Kald fra instruktionsadresse til målfunktion. Kald fra kildelinje til målfunktion. Kald fra kildefunktion til målfunktion. (U) betinget spring fra kilde til målinstruktion. (U) betingent spring fra kilde til mållinje. Spring mellem funktioner er ikke tilladte eftersom det ikke giver nogen mening i en kaldgraf. Derfor skal kontruktioner som undtagelseshåndtering og lange hop, oversættes til at poppe på kaldstakken når behovet opstår.
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.
Begivenhedstyper
Event Types
Tilfældige begivenhedstyper kan angives i profildataen, ved at navngive dem. Deres omkostning relateret til omkostningsentitet er et 64 bit heltal.
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.
Begivenhedstyper hvis omkostninger er angivet i profildatafilen, kaldes ægte begivenheder. Yderligere kan man angive formler for begivenhedstyper beregnet ud fra reelle begivenheder. De kaldes arvede begivenheder.
Event types whose costs are specified in a profile data file are called real events. Additionally, one can specify formulae for event types calculated from real events, which are called inherited events.
Graftilstand
Visualisation State
Visualiseringtilstande i & kcachegrind; inkluderer: primær og sekundær begivenhedstype valgt til visning, funktionsgrupperingen (brugt i funktionsprofillisten og entitetsfarvelægningen), profilpartene hvis omkostninger skal inkluderes i visningen, en aktiv omkostningsentitet (f. eks. en funktion markeret i den dokbare funktionsprofil), en markeret omkostningsentitet. Denne tilstand påvirker visningerne.
The Visualisation 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 colouring), the profile parts whose costs are to be included in visualisation, an active cost entity (e. g. a function selected from the function profile dockable), a selected cost entity. This state influences visualisations.
Visualiseringer vises altid for en, den aktive, omkostningsentitet. Når en given visualisering ikke er giver mening for en omkostningsentitet, deaktiveres den. F. eks. når man vælger et & ELF; - objekt i gruppelisten ved at dobbeltklikke, giver kildekommentar til et & ELF; - objekt ingen mening.
Visualisations always are shown for one, the active, cost entity. When a given visualisation is not appropriate for a cost entity, it is disabled (e. g. when selecting an ELF object in the group list by double-clicking, source annotation for an ELF object make no sense).
F. eks. for en aktiv funktion, viser kalderlisten alle funktionerne der kaldes fra den aktive. Man kan vælge en af disse funktioner uden at gøre den aktiv. Vises kaldgrafen ved siden af, vælges den samme funktion automatisk.
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 nearside, it will automatically select the same function.
Elementer i brugerfladen
Parts of the GUI
Sidedokker
Sidedocks
Sidedokker (dokbare) er sidevinduer som kan placeres på en hvilken som helst kant i et & kcachegrind; - vindue. De indeholder altid en liste af omkostningsentiteter, sorteret på en eller anden måde.
Sidedocks (Dockables) are side windows which can be placed at any border of an KCachegrind window. They always contain a list of cost entities sorted in some manner.
Funktionsprofil. Funktionsprofilen er en liste af funktioner der viser inklusiv - og eksklusivomkostning, kaldtælling, navn og placering af funktioner.
Function Profile. The Function Profile is a list of functions showing inclusive and exclusive cost, call count, name and position of functions.
Partoverblik
Parts Overview
Kaldstak
Call Stack
Visualiseringsområdet, normalt højre side i & kcachegrind; s hovedvindue, udgøres af en (standard) eller flere fanebladsvisninger, placeret enten horisontalt eller vertikalt. Hver fanebladsvisning har forskellige visualiseringsvisninger af kun en omkostningsentitet ad gangen. Navnet på denne entitet vises øverst i fanebladsvisningen. Er der flere fanebladsvisninger, er det kun den ene som er aktiv. Entitetsnavnet i den aktive fanebladsvisning, vises med fed skrift og afgør den aktive omkostningsentitet i & kcachegrind; - vinduet.
The visualisation area, typically the right part of a KCachegrind main window, is made up of one (default) or more Tab Views, either lined up horizontally or vertically. Each tab view holds different visualisation views of only one cost entity at a time. The name of this entity is given at the top of the tab view. If there are multiple tab views, only one is active. The entity name in the active tab view is shown in bold and determines the active cost entity of the KCachegrind window.
Områder i en fanebladsvisning
Areas of a Tab View
Hver fanebladsvisning kan indeholde op til fire visningsområder, top, højre, venstre og bund. Hvert område kan indeholde flere stakkede visualiseringsvisninger. Den synlige del af området vælges vha. en fanebladsbjælke. Fanebladsbjælker i toppen og i det højre område er øverst og fanebladsbjælker til venstre og i bunden er nederst. Du kan angive hvilken slags visualisering der skal være i hvilket område, ved at bruge fanebladendes kontekstmenuer.
Each tab view can hold up to four view areas, namely Top, Right, Left, and Bottom. Each area can hold multiple stacked visualisation views. The visible view 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 visualisation should go into which area by using the context menus of the tabs.
Synkroniseret graf via markeret entitet i en fanebladsvisning
Synchronised Visualisation via Selected Entity in a Tab View
Udover en aktiv entitet, har hvert faneblad en markeret entitet. Da de fleste visualiseringstyper viser flere entiteter med den aktive centreret, kan du ændre den markerede ved at navigere inde i en visualisering (ved at klikke med musen eller ved at bruge tastaturet). Typisk vises markerede entiteter i en fremhævet tilstand. Ved at ændre den markerede entitet i en af visualiseringerne i en fanebladsvisning, fremhæver alle andre visualiseringer i fanebladsvisningen den nye markerede entitet.
Besides an active entity, each tab view has an selected entity. As most visualisation types show multiple entities with the active one somehow centred, you can change the selected item by navigating inside a visualisation (by clicking with the mouse or using the keyboard). Typically, selected items are shown in an highlighted state. By changing the selected entity in one of the visualisations of a tab view, all other visualisations in the tab view accordingly highlight the new selected entity.
Synkronisering mellem fanebladsvisninger
Synchronisation between Tab Views
Hvis der er flere fanebladsvisninger, fører en ændring i markeringen i en fanebladsvisning til en aktiveringsændring i den næste (til højre/ til bund) fanebladsvisning. Denne type sammenkædning giver mulighed for hurtig søgning i kaldgrafer.
If there are multiple tab views, a selection change in one tab view leads to an activation change in the next (to right/ to bottom) tab view. This kind of linkage should, for example, allow for fast browsing in call graphs.
Udseende
Layouts
Layoutet i alle fanebladsvisninger i et vindue, kan gemmes (se menuindgangen Vis/ Layout), Efter at have duplikeret det aktuelle layout (Ctrl+Plus eller menu) og ændret størrelser eller flyttet en visualiseringsvisning til et andet område af en fanebladsvisning, kan du hurtigt skifte mellem det gamle og det nye layout via Ctrl+Venstre/ Højre. Layoutet gemmes mellem & kcachegrind; - sessioner med den samme profileringskommando. Du kan gøre det aktuelle layout til standarden for nye sessioner i & kcachegrind;, eller vende tilbage til standardopsætningen.
The layout of all the tab views of a window can be saved (see menu item View/ Layout). After duplicating the current layout (Ctrl+Plus or menu) and changing some sizes or moving a visualisation view to another area of an tab view, you can quickly switch between the old and the new layout via Ctrl+Left/ Right. The set of layouts will be stored between KCachegrind sessions of the same profiled command. You can make the current set of layouts as the default one for new KCachegrind sessions, or restore to the default layout set.
Flad profil
Flat Profile
Den flade profil indeholder en gruppeliste og en funktionsliste. Gruppelisten indeholder alle grupper hvori der er omkostninger, afhængigt af den valgte gruppetype. Gruppelisten er skjult når gruppering er deaktiveret.
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.
Funktionslisten indeholder den valgte gruppes funktioner (eller alle funktioner, hvis gruppering er deaktiveret), ordnet efter en søjle, f. eks. inklusiv - eller egenomkostninger forbrugt deri. Der er et maksimalt antal funktioner der vises i liste, som kan indstilles i Opsætning/ Indstil & kcachegrind;.
The function list contains the functions of the selected group (or all functions if grouping is switched off), ordered by some column, e. g. inclusive or self costs spent therein. There is a maximal number of functions shown in the list, which is configurable in Settings/ Configure KCachegrind.
I en profileringskørsel kan der produceres flere profildatafiler, der kan indlæses sammen i & kcachegrind;. Den dokbare partoversigt viser disse, horisontalt ordnet i henhold til oprettelsestidspunktet. Rektanglernes størrelser er proportionale med omkostningerne der forbruges deri. Du kan vælge en part eller flere for at indskrænke omkostningerne vist i andre & kcachegrind; - visninger til kun disse part.
In a profile run, multiple profile data files can be produced, which can be loaded together into KCachegrind. The Parts Overview dockable shows these, horizontally ordered according creation time; the rectangle sizes are proportional to the cost spent in the parts. You can select one or several parts to constrain the costs shown in the other KCachegrind views to these parts only.
Part er yderligere underinddelt. Der er partitionering og en inklusivomkostninger i opdelt tilstand:
The parts are further subdivided: there is a partitioning and an inclusive cost split mode:
Partitionering: Du ser partitioneringen i grupper for en profildatapart, i henhold til den valgte gruppe. F. eks. hvis der vælges & ELF; - objektgrupper, ser du farvede rektangler for hvert brugt & ELF; - objekt (delt bibliotek eller eksekverbar) med en størrelse proportional med omkostningerne forbrugt deri.
Partitioning: You see the partitioning into groups for a profile data part, according to the group type selected. For example, if ELF object groups are selected, you see coloured rectangles for each used ELF object (shared library or executable), sized according to the cost spent therein.
Opdelt inklusivomkostning: Der vises et rektangel der afspejler inklusivomkostningen i den aktive funktion i en part. Dette er igen opdelt for at vise inklusivomkostninger for kalderen.
Inclusive Cost Split: A rectangle showing the inclusive cost of the current active function in the part is shown. This, again, is split up to show inclusive costs of its callees.
Dette er en fuldstændig fiktiv 'mest sandsynlig' kaldstak. Den er opbygget således at der startes ved den aktive funktion og kaldere og kaldere/ kaldte med størst omkostning fra toppen og til bunden.
This is a purely fictional 'most probable 'call stack. It is built up by starting with the current active function and adds the callers/ callees with highest cost at the top and to bottom.
'Omkostning' - og 'kald' - søjlerne viser omkostningerne forbrugt i alle kald fra funktionen i linjen ovenover.
The 'Cost 'and 'Calls' columns show the cost used for all calls from the function in the line above.
Denne liste viser alle omkostningstyper der er til rådighed og den tilsvarende egen - og inklusivomkostning af den aktive funktion for netop denne begivenhedstype.
This list shows all cost types available and the corresponding self and inclusive cost of the current active function for that event type.
Ved at vælge en begivenhedstype i listen, kan du ændre omkostningstypen der vises generelt i & kcachegrind;, til at være den valgte.
By choosing an event type from the list, you change the type of costs shown all over KCachegrind to be the selected one.
Kaldlister
Call Lists
Disse lister viser kald til/ fra den aktive funktion. Med 'alle' kaldere/ kaldte funktioner, menes hvilke der kan nås i kalder/ kaldt- retningen, selv når der er andre funktioner imellem.
These lists show calls to/ from the current active function. With ''all 'callers/ callees functions are meant which can be reached in caller/ callee direction, even when other functions are in between.
Kaldlistevisning inkluderer:
Call list views include:
Alle kaldere
All Callers
Alle kaldede
All Callees
En trævisning af den primære begivenhedstype, op eller ned i kaldhierakiet. Hvert farvet rektangel repræsenterer en funktion. Dets størrelse forsøger at være proportionelt med omkostningerne forbrugt deri, mens den aktive funktion kører (der er dog begrænsninger ved optegningen).
A treemap visualisation of the primary event type, up or down the call hierarchy. Each coloured rectangle represents a function; its size tries to be proportional to the cost spent therein while the active function is running (however, there are drawing constrains).
For kaldervisningen, viser grafen hierakiet af alle kaldere af den aktuelle aktiverede funktion. For for kaldtvisningen vises hierakiet af alle kaldte fra den aktuelle aktiverede funktion.
For the Caller Map, the graph shows the nested hierarchy of all callers of the current activated function; for the Callee Map, it shows the nested hierarchy of all callees of the current activated function.
Indstillinger for udseende findes i kontekstmenuen. For eksakte størrelsesproportioner vælges 'Skjul ukorrekte kanter'. Da denne tilstand kan være meget ressourcekrævende, vil du sikkert begrænse det maksimale antal optegnede niveauer først. 'Bedst' fastsætter opdelingsretningen for indre funktioner ud fra de ydres synsvinkel. 'Altid bedst' beslutter sig udfra tilbageværende plads til hver funktion på samme niveau. 'Ignorér proportioner' bruger plads til at optegne funktionsnavnet før indre funktioner optegnes. Bid mærke i at størrelsesforholdene kan være særdeles fejlagtige.
Appearance options can be found in the in the context menu. To get exact size proportions, choose 'Hide 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.