32bit_me (32bit_me) wrote,
32bit_me
32bit_me

Categories:

Перевод на хабр

Сделал новый перевод для хабра - статья "Профилирование кода с LLVM" https://habr.com/post/417029/.



Ставьте плюсики, пишите комменты, на хабре или здесь.

В статье описывается метод профилирования кода, который заключается в том, что на уровне промежуточного представления LLVM в каждый базовый блок программы вставляется вызов функции, которая увеличивает глобальный статический счётчик на число команд в базовом блоке. Таким образом, запустив программу, мы можем подсчитать, сколько команд промежуточного кода было выполнено.

Недостатки такого подхода очевидны. Во-первых, промежуточный код преобразуется бэкендом в машинный код. Алгоритм преобразования может быть крайне сложен и между промежуточным кодом и машинным нет однозначного соответствия. Во-вторых, разные команды выполняются процессором за разное время. В-третьих, время выполнения последовательности команд не равно сумме времен выполнения каждой команды, т.к. процессор выполняет команды конвейерным способом, и у современных x86-64 в одновременной обработке может находиться несколько сотен команд.

Построить точный профайлер, не имея точной потактовой модели процессора, невозможно, а такие модели, если и существуют, не являются бесплатными. Даже ARM предоставляет потактовые симуляторы для своих ядер только на коммерческой основе. Хотя ARM имеет открытое ядро M0, можно было бы попробовать построить точный профайлер хотя бы для него.
Tags: llvm, статьи, хабр
Subscribe

  • Приехали

    Через 26 лет запустили модуль Наука! Ура, товарищи! Надеюсь, святой водой окропили должным образом, и иконки безопасности закреплены согласно…

  • Ламповая микросхема

    Сдвоенный триод Korg Nutube 6P1. Стоит около 50 долларов. В России тоже есть в продаже, по цене около 8000 рублей. Так что лучше заказывать…

  • Ретрофутуризм

    Рисунки никогда не существовавших компьютеров: https://androidarts.com/ 1. <a target="> </a> 2. 3. 4. 5. И ещё много…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment