The cost entities known to KCachegrind are given in the following. Simple Positions: Instruction. An assembler instruction at a specified address. Source Line of a Function. All instructions that the compiler (via debug information) maps to a given source line specified by source file name and line number, and which are executed in the context of some function. The latter is needed because a source line inside of an inlined function can appear in the context of multiple functions. Instructions without any mapping to an actual source line are mapped to line number 0 in file "???". Function. All source lines of a given function make up the function itself. A function is specified by its name and its location in some binary object if available. The latter is needed because binary objects of a single program each can hold functions with the same name (these can be accessed e. g. with dlopen/ dlsym; the runtime linker resolves functions in a given search order of binary objects used). If a profiling tool can not detect the symbol name of a function, e. g. because debug information is not available, either the address of the first executed instruction typically is used, or "???". Binary Object. All functions whose code is inside the range of a given binary object, either the main executable or a shared library. Source File. All functions whose first instruction is mapped to a line of the given source file. Class. Symbol names of functions typically are hierarchically ordered in name spaces, e. g. C++ namespaces, or classes of object oriented languages; thus, a class can hold functions of the class or embedded classes itself. Profile Part. Some time section of a profile run, with a given thread ID, process ID, and command line executed. As can be seen from the list, a set of cost entities often defines another cost entity; thus, there is a inclusion hierarchy of cost entities which should be obvious from the description above.
Kostnadsenheterna som & kcachegrind; känner till anges här. Enkla positioner: Instruktion En assemblerinstruktion på en given adress. Källkodsrad i en funktion Alla instruktioner som kompilatorn (via avlusningsinformation) avbildar på en given källkodsrad angiven med källkodsfilnamn och radnummer, och som körs i ett visst funktionssammanhang. Instruktioner utan en avbildning till en verklig källkodsrad använder radnummer 0 i filen???. Funktion En given funktion består av alla källkodsrader i själva funktionen. En funktion anges av sitt namn och sin plats i ett visst binärobjekt om tillgängligt. Det senare behövs eftersom binärobjekt i ett enda program vart och ett kan innehålla funktioner med samma namn (de kan t. ex. kommas åt med dlopen eller dlsym. Länkaren löser upp funktioner i en given sökordning för binärobjekt som används vid körning). Om ett profileringsverktyg inte kan detektera en funktions symbolnamn, t. ex. på grund av att avlusningsinformation inte är tillgänglig, används typiskt antingen adressen för den första instruktionen som körs, eller???. Binärobjekt Alla funktioner vars kod är inne i ett givet binärobjekts område, antingen i det körbara huvudprogrammet eller ett delat bibliotek. Källkodsfil Alla funktioner vars första instruktion avbildas till en rad i den givna källkodsfilen. Klass Symbolnamn i funktioner är ofta ordnade i hierarkiska namnrymder, t. ex. C++ namnrymder, eller klasser i objektorienterade språk. Därför kan en klass själv innehålla funktioner i klassen eller inbäddade klasser. Profileringsdel Ett visst tidsavsnitt av en profileringskörning, med ett givet tråd- id, process- id och kommandorad som kördes. Som syns i listan, definierar en uppsättning kostnadsenheter ofta en annan kostnadsenhet. Därför finns det en hierarki med ingående kostnadsenheter, som bör vara uppenbar från beskrivningen ovan.