Jump to content

Горячая точка (компьютерное программирование)

Горячая точка в информатике чаще всего определяется как область компьютерной программы , где происходит большая часть выполняемых инструкций или где во время выполнения программы тратится большая часть времени (не обязательно одно и то же, поскольку некоторые инструкции выполняются быстрее, чем другие).

Если программа прерывается случайным образом, счетчик программы ( указатель на следующую выполняемую команду) часто содержит адрес инструкции в определенном диапазоне, что может указывать на код, нуждающийся в оптимизации, или даже на наличие «плотного» ЦП цикла . Этот простой метод позволяет обнаружить часто используемые инструкции, хотя более сложные методы, такие как симуляторы набора команд или анализаторы производительности , позволяют добиться этого более точно и последовательно.

История обнаружения горячих точек

[ редактировать ]

Ученый -компьютерщик Дональд Кнут описал свою первую встречу с тем, что он называет следом прыжка, в интервью журналу Dr. Dobb's Journal в 1996 году, сказав:

В 60-е годы кто-то изобрел концепцию «следа перехода». Это был способ изменить машинный язык программы так, чтобы она меняла инструкцию следующего перехода или перехода , чтобы сохранить контроль, чтобы вы могли выполнять программу с довольно высокой скоростью вместо того, чтобы интерпретировать каждую инструкцию по одной и записывать ее в файл. именно там, где программа отклонялась от последовательности. Обработав этот файл, вы смогли выяснить, где программа проводит большую часть времени. Итак, в первый же день, когда у нас было запущено это программное обеспечение, мы применили его к нашему Фортрана компилятору , предоставленному, я полагаю, в те дни компанией Control Data Corporation . Мы обнаружили, что он тратит 87 процентов своего времени на чтение комментариев ! Причина заключалась в том, что он осуществлял перевод из одной кодовой системы в другую. [1]

Итерация

[ редактировать ]

Приведенный выше пример служит иллюстрацией того, что эффективное обнаружение горячих точек часто является итеративным процессом и, возможно, его следует выполнять всегда (вместо того, чтобы просто признавать, что программа работает разумно). После устранения всей посторонней обработки (просто путем удаления всех встроенных комментариев) новый анализ времени выполнения позволит более точно обнаружить «настоящие» горячие точки в переводе. Если бы вообще не было обнаружено никаких горячих точек, программа вполне могла бы потреблять гораздо больше ресурсов, чем необходимо, возможно, в течение многих лет на многочисленных машинах, причем никто никогда не осознавал этого полностью.

Моделирование набора команд в качестве детектора горячих точек

[ редактировать ]

Симулятор набора команд можно использовать для подсчета каждого времени выполнения конкретной инструкции и последующего создания либо экранного дисплея, либо печатного списка программ (с подсчетом и/или процентами от общей длины пути инструкции ), либо отдельного отчета, показывающего точные данные. где имело место наибольшее количество инструкций. Это дает лишь относительное представление о «горячих точках» (с точки зрения шага инструкции), поскольку большинство инструкций на многих машинах имеют разные тайминги. Тем не менее, он обеспечивает меру часто используемого кода, которая сама по себе весьма полезна при настройке алгоритма.

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 92fe90afd9137b38331b58c82354d9ec__1705152060
URL1:https://arc.ask3.ru/arc/aa/92/ec/92fe90afd9137b38331b58c82354d9ec.html
Заголовок, (Title) документа по адресу, URL1:
Hot spot (computer programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)