Механізми самопрофілювання компіляторів для коду в реальному часі

Автор(и)

  • М.Г. Бердник
  • І.П. Стародубський

DOI:

https://doi.org/10.34185/1562-9945-5-161-2025-08

Ключові слова:

адаптивна компіляція, оптимізація часу виконання, самопрофілювання, LLVM, JIT-компіляція, продуктивність

Анотація

У статті досліджується концепція самопрофілювальних компіляторів як засобу адаптивної оптимізації коду в реальному часі. Підхід ґрунтується на збиранні ди-намічних метрик продуктивності під час виконання програми та аналізі отриманих даних для вибору найефективніших стратегій компіляції. Запропоновано архітектуру компілятора, здатного автоматично виявляти критичні з точки зору продуктивності ділянки коду (hotspots), налаштовувати конфігурацію оптимізаційних проходів і здійснювати повторну компіляцію з урахуванням оновлених метрик. Реалізовано про-тотип на основі LLVM з вбудованим агентом часу виконання, відповідальним за ін-струментування коду, збір метрик та взаємодію з динамічним Pass Manager. Проведе-но серію експериментів на різних апаратних платформах, зокрема на десктопних про-цесорах і ARM-архітектурах. Результати продемонстрували суттєве зростання про-дуктивності без помітного збільшення часу компіляції або використання ресурсів. От-римані дані підтверджують доцільність інтеграції самопрофілювання в компілятори наступного покоління, орієнтовані на високопродуктивні обчислення, edge-системи та мобільні пристрої. У роботі представлено концепцію самопрофілювання як інструмент реальної оптимізації коду. Реалізовано прототип на базі LLVM із вбудованим модулем runtime-аналізу. Результати демонструють переваги запропонованого 
підходу.

Посилання

Muchnick, S. S. (1997). Advanced Compiler Design and Implementation. Morgan Kauf-mann.

Cooper, K. D., & Torczon, L. (2011). Engineering a Compiler (2nd ed.). Morgan Kauf-mann.

Aycock, J. (2003). A Brief History of Just-In-Time Compilation. Springer.

Tratt, L. (2021). Modern Compiler Implementation in a Post-LLVM World. Springer.

Parr, T. J. (2010). The Definitive ANTLR 4 Reference: Building Domain-Specific Lan-guages. Pragmatic Bookshelf.

Lattner, C., & Adve, V. (2004). LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. University of Illinois.

Jones, R., Hosking, A., & Moss, E. (2011). The Garbage Collection Handbook: The Art of Automatic Memory Management. Chapman & Hall/CRC.

Nystrom, R. (2021). Crafting Interpreters. Genever Benning.

Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2006). Compilers: Principles, Tech-niques, and Tools (2nd ed.). Addison-Wesley.

Appel, A. W. (1998). Modern Compiler Implementation in C. Cambridge University Press.

Завантаження

Опубліковано

2025-12-05