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.
& kcachegrind; tunneb ja kasutab järgmisi kuluolemeid. Lihtsad positsioonid: Instruktsioon Assembleri instruktsioon määratud addressiga. Funktsiooni lähtekoodi rida Kõik instruktsioonid, mida kompilaator (silumisinfo vahendusel) seob antud lähtekoodi reaga, mis on määratud lähtekoodi faili nime ja reanumbriga ja mis käivitatakse mingi funktsiooni kontekstis. Viimast on vaja seepärast, et inline- funktsiooni sees esinev lähtekoodi rida võib esineda mitme funktsiooni kontekstis. Instruktsioonid, mis ei ole seotud reaalse lähtekoodi reaga, seotakse reaga 0 failis???. Funktsioon Funktsioon koosneb antud fuktsiooni kõigist lähtekoodi ridadest. Funktsiooni määrab selle nimi ja asukoht mingis binaarobjektis, kui see on saadaval. Viimast on vaja seepärast, et ühe programmi binaarobjektid võivad sisaldada samanimelisi funktsioone (neile pääseb ligi näiteks dlopen või dlsym abil; käituslinkur lahendab funktsioonid kasutatava binaarobjekti etteantud otsingujärjekorras). Kui profileerimistööriist ei suuda tuvastada funktsiooni sümbolnime (kui näiteks pole saadaval silumisinfot), kasutatakse tavaliselt esimesena käivitatud instruktsiooni aadressi või "???. Binaarobjekt Kõik funktsioonid, mille kood asub antud binaarobjekti vahemikus kas peamises käivitatavas failis või jagatud teegis. Lähtekoodi fail Kõik funktsioonid, mille esimene instruktsioon on seotud antud lähtekoodi faili reaga. Klass Funktsioonide sümbolnimed on tavaliselt hierarhiliselt korraldatud nimeruumidesse, & eg; C++ nimeruumidesse, või objektorienteeritud keele klassidesse. Nii võib klass sisaldada klassi funktsioone või ka põimitud klasse. Profiili osa Profileerimise mingi ajalõik antud lõime ID- ga, protsessi ID- ga ja käivitatud käsureaga. Nagu nimekirjast näha, võib üks kuluolemite kogum sageli defineerida mõne muu kuluolemi, mistõttu on olemas kuluolemite kumulatiivne hierarhia.