ОЦІНКА ВПЛИВУ JIT ТА NATIVE AOT-КОМПІЛЯЦІЇ НА ПРОДУКТИВНІСТЬ І РЕСУРСОЕФЕКТИВНІСТЬ ВЕБСЕРВІСІВ У СЕРЕДОВИЩІ .NET 9
DOI:
https://doi.org/10.28925/2663-4023.2026.35.1323Ключові слова:
.NET 9, вебсервіс, база даних SQLite, операційна система, JIT-компіляція, Native AOT, ASP.NET Core, пропускна здатність, затримка відгуку, оперативна пам’ятьАнотація
У статті представлено результати дослідження впливу методів компіляції Just-In-Time (JIT) та Native Ahead-Of-Time (Native AOT) на продуктивність і ресурсоефективність вебсервісів у середовищі .NET 9. Актуальність роботи зумовлена активним використанням контейнеризованих і безсерверних архітектур, у яких важливими характеристиками є скорочення часу ініціалізації, підвищення пропускної здатності та оптимізація використання системних ресурсів. Експериментальне дослідження виконано на основі тестового вебсервісу, розробленого з використанням платформи ASP.NET Core та полегшеного шаблону WebApplication.CreateSlimBuilder(). Для мінімізації впливу сторонніх компонентів доступ до локальної бази даних SQLite організовано без використання ORM через ADO.NET, а серіалізацію даних реалізовано засобами System.Text.Json. Порівняння виконано за сценаріями точкового читання даних за первинним ключем і пакетної вибірки 103 записів із подальшою JSON-серіалізацією. Навантажувальне тестування проводилося в діапазоні від 1 до 200 паралельних потоків. За результатами експериментів встановлено, що Native AOT забезпечує суттєву перевагу під час «холодного» запуску вебсервісу. Час обробки першого запиту в сценарії точкового читання скорочено з приблизно 668 мс для JIT-версії до 44 мс для Native AOT, що відповідає майже 15-кратному зменшенню затримки. Дослідження пропускної здатності показало, що за навантаження 4 паралельними потоками Native AOT забезпечує продуктивність близько 667 зап./с проти 626 зап./с у JIT-версії. Аналіз використання оперативної пам’яті продемонстрував близький рівень споживання ресурсів у стабілізованому стані: близько 26.13 МБ для JIT та 26.55 МБ для Native AOT. Отримані результати можуть бути використані для обґрунтованого вибору способу компіляції під час проєктування сучасних високонавантажених вебсервісів.
Завантаження
Посилання
Microsoft. (2026). ASP.NET Core support for Native AOT. Microsoft Learn. https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot?view=aspnetcore-10.0
Serrano, M. (2021). Of JavaScript AOT compilation performance. Proceedings of the ACM on Programming Languages, 5(ICFP), 1–30. https://doi.org/10.1145/3473575
Stoico, V., Dragomir, A. C., & Lago, P. (2025). An empirical study on the performance and energy usage of compiled Python code [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2505.02346
Pichler, C., Bohn, M., Mössenböck, H., & Wimmer, C. (2025). Fast and compact: Reducing size of AOT-compiled Java code without sacrificing performance. In Proceedings of the 22nd ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR ‘25) (pp. 12–22). Association for Computing Machinery. https://doi.org/10.1145/3759426.3760976
Ugwumba, N. K., & Jaja, P. S. (2025). Ahead-of-Time vs. Just-in-Time Compilation Trade-offs: Empirical performance studies [Preprint]. Research Square. https://doi.org/10.21203/rs.3.rs-7915532/v1
Traini, L., Cortellessa, V., Di Pompeo, D., & Tucci, M. (2022). Towards effective assessment of steady state performance in Java software: Are we there yet? Empirical Software Engineering, 28(1), Article 13. https://doi.org/10.1007/s10664-022-10247-x
Microsoft. (2026, January 8). Native AOT deployment overview. Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/
Microsoft. (2025, October 28). .NET application publishing overview. Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/core/deploying/
TeamDev. (2026). Trimming & Native AOT. DotNetBrowser Documentation. https://teamdev.com/dotnetbrowser/docs/guides/gs/aot-support/
Kokosa, K. (2018). Pro .NET Memory Management: For Better Code, Performance, and Scalability. Apress. https://doi.org/10.1007/978-1-4842-4027-4
Microsoft. (2024). The managed thread pool. Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/standard/threading/the-managed-thread-pool
Microsoft. (2025) How to serialize JSON in C# - .NET. Microsoft Learn: Build with answers in reach. https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/how-to
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2026 Аліна Третяк, Леся Булатецька, Віталій Булатецький, Юлія Павленко

Ця робота ліцензується відповідно до Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.