Kapitel 5. Spørgsmål og svar

Dette dokument er muligvis blevet opdateret siden din installation. Du kan finde den nyeste udgave på http://www.klid.dk/kde/da/kdesdk/.

5.1. Hvad kan KCachegrind bruges til? Det aner jeg nemlig ikke.
5.2. Hvad er forskellen på 'inklusiv' og 'egen' ?
5.3. Min værktøjs-og menulinje i KCachegrind ser så spartansk ud. Er det normalt?
5.4. Når jeg dobbeltklikker på en funktion et stykke nede i visningen af kaldgrafen, viser det for funktionen main(), den samme omkostning som den valgte funktion. Skal den ikke konstant være 100%?
5.1.

Hvad kan KCachegrind bruges til? Det aner jeg nemlig ikke.

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.

5.2.

Hvad er forskellen på 'inklusiv' og 'egen' ?

Disse er omkostningsegenskaber for funktioner angående en eller anden begivenhedstype.Da funktioner kan kalde hinanden, giver det ingen mening at skelne mellem omkostningerne for funktionen selv ('egenomkostningen') og omkostninger der inkluderer alle kaldte funktioner ('inklusivomkostning'). 'Egen' refereres somme tider som 'eksklusivomkostning'.

Så f.eks. for main(), vil du altid have en inklusivomkostning på næsten 100%, hvorimod egenomkostningen er ubetydelig lille når arbejdet udføres i en anden funktion.

5.3.

Min værktøjs-og menulinje i KCachegrind ser så spartansk ud. Er det normalt?

KCachegrind er tilsyneladende ikke korrekt installeret på dit system. Det anbefales at kompilere det med installationspræfikset sat til dit KDE-basiskatalog: configure --prefix=/opt/kde3; make install Hvis du vælger et andet katalog som $HOME/kde, skal du indstille miljøvariablen KDEDIR til dette katalog før du kører KCachegrind.

5.4.

Når jeg dobbeltklikker på en funktion et stykke nede i visningen af kaldgrafen, viser det for funktionen main(), den samme omkostning som den valgte funktion. Skal den ikke konstant være 100%?

Du har aktiveret en funktioner under main() med en omkostning mindre end main(). For enhver funktion, vises kun en del af den totalt omkostning for funktionen, nemlig den forbruges når den aktive funktion køres. Dvs. omkostningerne der vises for enhver funktion kan aldrig være højere end omkostningen af den aktive funktion.