# :&kcachegrind;-håndbogen

Josef
Weidendorfer

    Josef.Weidendorfer@gmx.de

2002
Josef Weidendorfer
&FDLNotice;
2003-09-18
0.4.3

&kcachegrind; er en &kde;-grænseflade for &cachegrind;, en del af &valgrind;.

KDE
kdesdk
Cachegrind
Valgrind
Profilering

## Indledning

Når du udvikler et program, er et af de sidste skridt som regel at gøre det så hurtigt som muligt (men stadigvæk rigtigt). Du vil ikke sløse tiden væk på at optimere funktioner som sjældent bruges. Derfor skal du vide i hvilke dele af programmet den største del af tiden bruges.

Dette kaldes profilering. Programmet køres under kontrol af et profileringsværktøj, som giver sporing af kørselen. Efter sporingen er undersøgt, véd du formodentlig hvor du skal optimere og bagefter verificerer du om optimeringen lykkedes med yderligere en profileringskørsel.

Mest kendt er GCC's profileringsværktøj gprof. Du skal kompilere programmet med flaget `-pg`, køre programmet for at oprette filen `gmon.out`, som kan oversættes til læsbar form med `gprof`. Bagdelen er kompileringsskridtet for at forberede det kørbare program, som også skal linkes statisk.

Et andet profileringsværktøj er &cachegrind;, som er en del af &valgrind;. Det bruger emuleringen af processoren i Valgrind til at køre programmet, og fanger alle hukommelsesadgange for sporingen. Programmet behøver ikke kompileres igen, det kan bruge delte biblioteker og plugin, og profileringsmålingen påvirker ikke resultatet af sporingen. Sporingen omfatter antallet af instruktioner, adgange til datahukommelsen og ikke ramt cache i første og andetniveaus cacher, og relaterer det til kildekodelinjer og funktioner i programmet som kører (en bagdel er at det bliver langsommere på grund af emuleringen af processoren, det er uheldigvis omkring 50 gange langsommere).

En programfiks for kildekoden til &valgrind; 1.0.x tilføjer sporing af kaldetræet, dvs. hvordan funktionerne kalder hinanden og hvor mange begivenheder der sker mens en funktion køres (inklusive alle kaldte funktioner).

&kappname; er et værktøj til at anskueliggøre profileringsdata som laves af &cachegrind;. Du anbefales stærkt at tilføje støtte for sporing af kaldetræ til &cachegrind;, eftersom &kcachegrind; på den måde bliver meget mere nyttig.

## Brug af &kcachegrind;

Bemærk: Hver komponent i &kcachegrind; har Hvad er dette? hjælp. Hvis du ikke vil lede i dokumentationen, så brug den!

### Eksempel for at komme hurtigt i gang

Kør det simpelthen!

### Funktioner i &kcachegrind;

Understøtter: vilkårlige begivenheder, funktionsgruppering

### Almene retningslinjer

Effektiv profilering...

### Øvelse

En profileringssession med &kcachegrind;.

## Kommandoreference

### &kcachegrind;s hovedvindue

#### Fil-menuen

&Ctrl;N Fil Ny

  Opretter et nyt dokument

&Ctrl;S Fil Gem

  Gemmer dokumentet

&Ctrl;Q Fil Afslut

  Afslutter &kappname;

## Spørgsmål og svar

&reporting.bugs; &updating.documentation;

&kcachegrind; virker ret lækker. Men jeg forstår den ikke. Hvad skal den bruges til?

&kcachegrind; er til hjælp på et sent skridt i programudvikling som kaldes profilering. Hvis du ikke udvikler programmer, har du ikke noget at bruge &kcachegrind; til.

Jeg får kompileringsfejl. Hvad kan problemet være?

Ofte har &Qt;-installationen ikke understøttelse for &kde;...

## Medvirkende og licens

&kappname;

Tak til Julian Seward for det udmærkede værktøj &valgrind;, og Nicholas Nethercote for tilføjelsen &cachegrind;. Uden disse programmer, ville hverken programrettelser for kaldetræer for &valgrind; eller KCachegrind findes. Mange af ideerne til denne grafiske grænseflade kommer også fra dem.

Og tak for alle fejlrapporter og forslag fra forskellige brugere. Sidst men ikke mindst, tak til

- &kde;, det vidunderlige programmeringsmiljø,

- &Qt;, den perfekte værktøjskasse for grafiske brugergrænseflader,

- &Linux;, det endegyldige operativsystem.

&underFDL;

## Installation

### Hvordan får jeg fat i &kcachegrind;

&kcachegrind; har en hjemmeside på http://www.weidendorfers.de/kcachegrind. Kig der for at finde yderligere installations- og kompileringsinstruktioner.

### Krav

For at bruge &kcachegrind; med heldigt resultat, har du brug for &kde; 3.x. For at oprette profileringssporinger, kræves &cachegrind;. For at tillade de mest interessante valgmuligheder for anskueliggørelse i &kcachegrind;, skal programrettelsen for kaldetræet fra &kcachegrind;s hjemmeside anvendes på &valgrind;s kildekode.

### Kompilering og installation

&install.compile.documentation;

### Indstilling

Alle indstillingsmuligheder findes enten i indstillingsdialogen eller i de sammenhængsafhængige menuer i graferne.

&documentation.index;