Vika 8. Aflúsun og forstilling Flashcards
Fyrsta nálgun í aflúsun forrits er oft að ?
Bæta við prentskipunum í kringum þá línu í kóðanum þar sem grunur er á að vandamálið liggi, og ítra sig áfram þar til nægum upplýsingum hefur verið safnað um hvað olli vandanum.
Önnur nálgun í aflúsun forrits er oft að ?
Skrásetja atburði í svokallaðan keyrsluál (e. log).
Hvað er keyrsluáll?
Keyrsluáll er einfaldlega notaður fyrir skrásetningar á atburðum og/eða upplýsingum um keyrslu(r). Hægt er að skrá færslur í keyrsluál innan úr forriti, í stað sérstakra prent skipana. Skráning í keyrsluál er betri en venjulegar prent skipanir fyrir margar sakir.
Dæmi um afhverju keyrsluáll er betri en að nota prent skipanir í aflúsun?
Þú getur sent keyrsluálinn í skrá, tengil (e. sockets), eða fjartengda netþjóna í stað þess að prenta bara í venjulegt úttak.
Færslur í keyrsluál styðja mismunandi alvarleikastig (til dæmis INFO, DEBUG, WARN, ERROR o.s.frv., sem standa fyrir upplýsingar, aflúsun, varúð og villu)
Fyrir ný vandamál eru góðar líkur á að keyrsluáll innihaldi nægar upplýsingar til að komast til botns í því hvað sé ekki að virka sem skyldi í kóðanum.
Til að skrifa í stýrikerfis keyrsluálana er hægt að nota ?
logger (Tenglar á ytra svæði.) skeljaforritið.
Flestum forritunarmálum fylgir einhvers konar aflúsari. Í Python er það ?
Python Debugger eða pdb.
Hvað er kyrrstæð greining (e.Static Analysis)?
Fyrir sum vandamál er óþarfi að keyra kóðann til að átta sig á hvar villa leynist.
Í svona tilfellum koma kyrrstæð greiningartól til sögunnar. Kyrrstæð greiningarforrit taka frumkóða sem inntak og greina hann eftir ýmsum kóðareglum til að ákvarða réttleika kóðans.
Rauntími
Jafngildi þess að telja hve langt sekúnduvísirinn hreyfðist á klukkunni frá byrjun forritskeyrslu til enda. Inni í þeirri tölu er þá líka tíminn sem fór í aðrar keyrslur framkvæmdar á sama tíma, eða tími þar sem forritið var hindrað (e. blocked) t.d. ef beðið var eftir inntaki/úrtaki eða að nettenging næðist.
Notendatími
Sú tímalengd sem eytt var í örgjörvanum í að keyra kóða notanda.
Kerfistími
Sú tímalengd sem eytt var í örgjörvanum í að keyra kjarnakóða
Hvað er að keyrslugreina ?
Oftast þegar fólk talar um keyrslugreina (e. profilers) er verið að vísa til örgjörvakeyrslugreina sem eru algengastir.
Það eru tvær tegundir af örgjörvakeyrslugreinum:
rakningar (e. tracing) og úrtaks (e. sampling) keyrslugreinar.
Rakningar keyrslugreinar ?
halda skrá yfir hvert einasta kall á fall (e. function call) sem forritið þitt gerir
Úrtaks keyrslugreinar ?
kanna forritið þitt reglulega (oftast á hverri millisekúndu) og taka niður hvað er í stafla (e. stack) forritsins.
Í forritum á borð við C eða C++ geta minnislekar valdið því að forritið þitt sleppir ekki minni tölvunnar sem það er ekki lengur að nota. Til að aðstoða við minnisaflúsun er hægt að nota tól eins og?
Valgrind, sem hjálpa þér að koma auga á hvar minnisleki geti átt sér stað.