Продуктивність та оптимізація структур даних і методів JavaScript

Машкіна, Ірина Вікторівна та Носенко, Тетяна Іванівна та Яскевич, Владислав Олександрович та Яскевич, Юрій Владиславович (2026) Продуктивність та оптимізація структур даних і методів JavaScript Кібербезпека: освіта, наука, техніка, 34 (2). с. 169-181. ISSN 2663-4023

[thumbnail of I_Mashkina_T_Nosenko_V_Yaskevych_Y_Yaskevych_CEST_34.pdf] Текст
I_Mashkina_T_Nosenko_V_Yaskevych_Y_Yaskevych_CEST_34.pdf - Опублікована версія

Download (811kB)
Офіційне посилання: https://www.csecurity.kubg.edu.ua/index.php/journa...

Анотація

У цій статті представлено вичерпний та глибокий аналіз еволюції структур даних, алгоритмів їх обробки та ітераційних методів у мові програмування JavaScript. Дослідження охоплює фундаментальні зміни, що відбулися в екосистемі з моменту публікації попередніх базових оцінок продуктивності у 2021 році, розширюючи фокус від простих порівнянь масивів та множин до комплексного аналізу управління пам'яттю, архітектури JIT-компіляторів та новітніх специфікацій ECMAScript 2023–2025 років. Робота слугує сучасним переосмисленням концепцій продуктивності, даючи ґрунтовну відповідь на питання про доцільність оновлення класичних бенчмарків: у сучасному контексті старі підходи до оптимізації можуть не лише бути неефективними, але й призводити до критичних збоїв у високонавантажених системах. Унікальна цінність цього дослідження полягає у детальному розборі архітектурних нововведень рушія V8, зокрема впровадження JIT-компілятора середнього рівня Maglev, який радикально змінив профіль виконання гарячого коду, забезпечивши швидку оптимізацію без значних витрат часу на профілювання. Окремим вагомим внеском статті є вирішення раніше задокументованої проблеми неможливості створення колекцій типу Set або Map розміром понад сто мільйонів елементів. У дослідженні наведено точний математичний та архітектурний доказ апаратних обмежень рушія V8, які формують жорсткий ліміт у 224 (приблизно 16,7 мільйона) елементів через специфіку роботи об'єкта FixedArray та обов'язковий фактор завантаження хеш-таблиці. На основі власних експериментальних даних розглядається продуктивність нових імутабельних операцій (таких як метод toSorted, запроваджений в ES2023), де доведено, що незважаючи на додаткове виділення оперативної пам'яті, їхні показники швидкодії залишаються співрозмірними з традиційними мутабельними підходами завдяки вдосконаленим механізмам збирання сміття та застосуванню змінних числових типів у купі (mutable heap numbers). Окрім цього, значну увагу приділено новітнім методам алгебри множин (Set.prototype.union, intersection, difference), стандартизованим в ES2024. Емпірично доведено, що нативні імплементації цих методів прискорюють операції об'єднання до 5.8 разів порівняно з класичними поліфілами, ефективно оптимізуючи хеш-колізії на низькому рівні. Також глибоко аналізується проривна ефективність лінивих ітераторів (Iterator Helpers), затверджених у стандарті ES2025. Власні емпіричні дані підтверджують, що використання лінивого обчислення здатне зменшити пікове споживання оперативної пам'яті майже в 1.6 раза під час обробки гіпервеликих масивів, водночас розкриваючи неочевидний парадокс агресивного збирання сміття на середніх обсягах даних. Завершує звіт глибинне профілювання деградації об'єктів під час динамічних мутацій, що надає програмним інженерам обґрунтовані критерії для вибору структур даних під час проєктування високонавантажених серверних систем.

Тип елементу : Стаття
Ключові слова: JavaScript; JIT-компілятор V8; Maglev; структури даних; продуктивність алгоритмів; ECMAScript 2025; ітератори; колекції Set; колекції Map; оптимізація пам'яті
Типологія: Статті у періодичних виданнях > Фахові (входять до переліку фахових, затверджений МОН)
Підрозділи: Факультет інформаційних технологій та математики > Кафедра комп'ютерних наук
Користувач, що депонує: Владислав Олександрович Яскевич
Дата внесення: 03 Лист 2026 22:34
Останні зміни: 03 Лист 2026 22:34
URI: https://elibrary.kubg.edu.ua/id/eprint/60083

Actions (login required)

Перегляд елементу Перегляд елементу