Skip to content

Latest commit

 

History

History
21 lines (21 loc) · 1.74 KB

step6.md

File metadata and controls

21 lines (21 loc) · 1.74 KB

Задание

Оптимизация по превышении заданного количества сэмплов. Вызов BOLT.

План

  1. Задать функцию, которая для данного объектного файла подготовит вызов BOLT: (invoke_bolt(objfile, fdata_file) -> outfile)
    • Сформировать уникальное имя для оптимизированного объектного файла (outfile)
    • Вызов BOLT:
    llvm-bolt objfile -data=fdata_file -o outfile -dyno-stats
    
    • Вернуть outfile
  2. После обновления записей в БД:
    • Найти объектные файлы, для которых суммарное количество сэмплов во всех perf файлах превышает заданный порог (например, N=100).
    • Исключить некоторые случаи:
      • perf map файлы (например, проверять расширение и пропускать файлы .map)
      • Специальные объекты: [vdso], [kernel.kallsyms] (пропускать всё, что начинается не с /)
    • Отсортировать по количеству сэмплов по убыванию, выбрать заданное количество таких объектных файлов (M=1 для начала).
  3. Для каждого полученного объектного файла objfile:
    • Подготовить профиль: prepare_fdata(objfile) -> fdata_file
    • Вызвать BOLT: invoke_bolt(objfile, fdata_file) -> outfile