Hot spot (počítačové programování) - Hot spot (computer programming)

Hot spot v informatice je nejvíce obvykle definována jako oblast s počítačovým programem , kde vysoký podíl provedených pokynů dojít nebo kde je nejvíce čas strávený během provádění programu (ne nutně totéž, neboť některé instrukce jsou rychlejší než ostatní).

Pokud je program náhodně přerušen, je často zjištěno , že čítač programu ( ukazatel na další prováděnou instrukci) obsahuje adresu instrukce v určitém rozsahu, což možná označuje kód, který potřebuje optimalizaci, nebo dokonce indikuje existenci „těsné“ smyčky CPU . Tato jednoduchá technika dokáže detekovat vysoce používané instrukce, ačkoli sofistikovanější metody, jako jsou simulátory sady instrukcí nebo analyzátory výkonu , toho dosahují přesněji a konzistentněji.

Historie detekce hot spotů

Počítačový odborník Donald Knuth popsal své první setkání s tím, co označuje jako skoku stopy v rozhovoru pro Dr. Dobb Journal v roce 1996, řekl:

V 60. letech někdo vymyslel koncept „skokové stopy“. Toto byl způsob, jak změnit strojový jazyk programu, takže by se změnila další větev nebo instrukce skoku, aby se zachovala kontrola, takže byste mohli program provádět poměrně vysokou rychlostí místo toho, abyste interpretovali každou instrukci po jedné a zaznamenávali do souboru přesně tam, kde se program odchýlil od sekvenčnosti. Zpracováním tohoto souboru můžete zjistit, kde program trávil většinu času. Takže první den, kdy jsme měli tento software spuštěný, jsme jej aplikovali na náš kompilátor Fortran dodaný společností, předpokládám, že to bylo v té době, Control Data Corporation . Zjistili jsme, že tráví 87 procent svého času čtením komentářů ! Důvod byl ten, že se překládal z jednoho kódového systému do druhého do jiného.

Opakování

Výše uvedený příklad slouží k ilustraci, že efektivní detekce hot spotů je často iterační proces a možná ten, který by měl být prováděn vždy (místo jednoduchého přijetí rozumného provedení programu). Po vyloučení veškerého cizího zpracování (například odstraněním všech vložených komentářů) by nová běhová analýza přesněji detekovala „skutečné“ aktivní body v překladu. Pokud vůbec nedocházelo k detekci horkých míst, program pravděpodobně spotřeboval mnohem více zdrojů, než bylo nutné, možná po mnoho let na mnoha strojích, aniž by si toho někdo byl plně vědom.

Simulace instrukční sady jako detektor horkých míst

Instrukční sada simulátor lze počítat pokaždé, když určitý pokyn je proveden a novější produkty buď zobrazení na obrazovce, tištěný program, výpis (s počty a / nebo v procentech celkové délky instrukce cesta ), nebo samostatná zpráva ukazující přesně kde se uskutečnil nejvyšší počet pokynů. To poskytuje pouze relativní pohled na aktivní body (z pohledu kroku instrukce), protože většina instrukcí má na mnoha strojích různá časování. Poskytuje však míru vysoce používaného kódu a ten, který je sám o sobě docela užitečný při ladění algoritmu.

Viz také

Reference