Емпіричний аналіз енергоефективності контейнерів C++ STL

Автор(и)

  • М. Куземський Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», Україна
  • О. Лісовиченко Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», Україна

DOI:

https://doi.org/10.20535/1560-8956.48.2026.351892

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

C , STL, енергоефективність, AMD PMC

Анотація

Проблема енергоефективності програмного забезпечення є ключовою для Green Software Engineering. Вибір структур даних лише за асимптотичною складністю ( -нотацією) часто ігнорує вплив ієрархії кеш-пам'яті процесора. Метою роботи є підвищення енергоефективності C++ програм шляхом обґрунтованого вибору контейнерів STL. Розроблено методику вимірювання «чистого» енергоспоживання (CPU Package Energy) з використанням лічильників AMD PMC та утиліти perf (Linux), яка ізолює вартість алгоритму від витрат на ініціалізацію. Об’єктами дослідження стали vector, list, deque, map, unordered_map. Експериментально встановлено, що для ітерації std::vector є найефективнішим завдяки кеш-локальності, тоді як std::map споживає в 10 разів більше енергії. У задачах пошуку std::unordered_map дозволяє знизити витрати до рівня похибки вимірювання, маючи абсолютну перевагу над лінійним пошуком у vector. Виявлено високу енергетичну ціну масової вставки в unordered_map через перегешування. Результати дозволяють зменшити енергетичний слід ПЗ без зміни логіки.

Бібл. 5, іл. 0, табл. 1

Посилання

Josuttis N.M. The C++ Standard Library: A Tutorial and Reference (2nd Edition). Addison-Wesley Professional, 2012.

Kalliainen A., Vanhala E. Why you can't trust the O-notation: a case study of C++ STL containers. In: Companion of the 2018 ACM/SPEC International Conference on Performance Engineering (ICPE '18). ACM, 2018. – Pp. 9-12.

Rahman A.K.M.A. Big-O Notation. In: A Guide to C++ Programming. Apress, 2018. – Pp. 1-13.

Pereira R., Couto M., Ribeiro F., et al. Energy efficiency across programming languages. In: Proceedings of the 2nd International Conference on Reproducible Research in Computational Science (RECS). 2017. – Pp. 1-10.

de Melo A.C. The New Linux 'perf' tools. In: Proceedings of the Linux Kongress. 2010. – Pp. 1-28.

##submission.downloads##

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

2026-02-09