Засоби підвищення продуктивності при веб-розробці на платформі ASP.NET
Анотація: Досліджено різні методи підвищення продуктивності при розробці на платформі ASP.Net.
Бібліографічний опис статті:
Сергій Мітряєв, Ірина Андрющенко та Олена Олійник. Засоби підвищення продуктивності при веб-розробці на платформі ASP.NET//Наука онлайн: Міжнародний електронний науковий журнал - 2021. - №4. - https://nauka-online.com/publications/technical-sciences/2021/4/4-3/
Технічні науки
УДК 004.432.45
Мітряєв Сергій Сергійович
студент
Харківського національного університету радіоелектроніки
Митряев Сергей Сергеевич
студент
Харьковского национального университета радиоэлектроники
Mitriaiev Sergiy
Student of the
Kharkiv National University of Radioelectronics
Андрющенко Ірина Ігорівна
студентка
Харківського національного університету радіоелектроніки
Андрющенко Ирина Игоревна
студентка
Харьковского национального университета радиоэлектроники
Andriushchenko Iryna
Student of the
Kharkiv National University of Radioelectronics
Олійник Олена Володимирівна
старший викладач кафедри програмної інженерії
Харківський національний університет радіоелектроніки
Олейник Елена Владимировна
старший преподаватель кафедры программной инженерии
Харьковский национальный университет радиоэлектроники
Oliinik Olena
Assistant Professor of Software Engineering Department
Kharkiv National University of Radioelectronics
ЗАСОБИ ПІДВИЩЕННЯ ПРОДУКТИВНОСТІ ПРИ ВЕБ-РОЗРОБЦІ НА ПЛАТФОРМІ ASP.NET
СРЕДСТВА ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ ПРИ ВЕБ-РАЗРАБОТКЕ НА ПЛАТФОРМЕ ASP.NET
TOOLS FOR PRODUCTIVITY IMPROVEMENT FOR WEB-DEVELOPMENT USING ASP.NET PLATFORM
Анотація. Досліджено різні методи підвищення продуктивності при розробці на платформі ASP.Net.
Ключові слова: платформа ASP.NET, Засоби підвищення продуктивності, Кешування, Ліниві класи, Веб-додатки, Асинхронність.
Аннотация. Исследованы различные методы повышения производительности при разработке на платформе ASP.Net.
Ключевые слова: платформа ASP.NET, Средства повышения производительности, кэширование, Ленивые классы, Веб-приложения, Асинхронность.
Summary. Studied different methods of increasing productivity of development using ASP.NET platform..
Key words: ASP.NET Platform, Performance Tools, Caching, Lazy Classes, Web Applications, Async.
Використовуйте кешування на стороні серверу (Server side caching)
З’ясуйте всі загальні дані, що отримуються з бази даних, кожен раз, коли сторінка завантажується. Загальні дані та майстер-дані залишаються незмінними або змінюються нечасто [1]. Прикладом таких даних є список міст. Ви можете зберігати їх на стороні серверу у вигляді кеш-об’єктів. Тож, замість того, щоб завантажувати ці дані з бази даних, ви можете отримувати їх з кешу, тим самим зменшуючи час, необхідний для завантаження сторінки, через прибирання зайвого звернення до бази даних.
Використовуйте кешування сторінок (Page Caching)
Рекомендується використовувати кешування вихідних даних сторінки, щоб швидше завантажувати її. Це може значно покращити продуктивність. Також ви можете встановити кешування однієї сторінки за параметром, тобто, залежно від цього параметра, в браузері буде кешовано іншу версію тієї самої сторінки, тому, коли користувач повторно відвідує її, буде завантажено кешовану версію цієї веб-сторінки [4].
Якщо вся ваша сторінка відображає динамічний вміст, але деяка її частина має статичний вміст, можна використовувати часткове кешування (відоме як кешування фрагментів), що означає, що буде кешовано лише деяку частину сторінки, а не її всю.
Використовуйте асинхронні методи
Асинхронні методи є корисними, бо не блокують інтерфейс сторінки та не чекають, поки одне завдання буде повністю виконано [6]. Тобто сайт буде продовжувати завантажувати вміст неодночасно, таким чином завантаження контенту стане набагато швидшим, і зможе забезпечити кінцевому користувачеві кращий досвід перегляду вашого ASP.NET веб-сайту.
Не використовуйте Try.Wait та Try.Result в асинхронних методах
Використовуйте ключове слово await, замість Task.Wait та Task.Result. Під час використовування Task.Wait, ви фактично блокуєте потік, доки завдання, яке працює синхронно з іншими командами, не буде виконано, але, коли ви використовуєте ключове слово await, то потік не блокується, а працює асинхронно [3]. Рекомендації з написання коду наведено далі:
// Неправильно
Task task = GetStudents();
await task;
// Правильно
Task task = GetStudents();
task.Wait();
Мінімізуйте використання змінних Application та Session
Уникайте використання зайвих змінних у програмі, якщо це не потрібно, та при використанні ніколи не зберігається великі дані або майстер-дані у змінних програми [2].
Використовуйте змінні сеансу лише для збереження конкретних даних користувача протягом певної тривалості та обнуляйте об’єкт сеансу, як тільки користувач залишає сайт. Використання багатьох змінних сеансу для кількох користувачів може уповільнити продуктивність програми, тому намагайтеся обмежувати їх кількість.
Використовуйте ліниві класи для завдання лінивих завантажень
Використовуйте ліниве завантаження, коли ви хочете завантажувати об’єкт колекції. Ліниве завантаження – це техніка, яка може допомогти покращити продуктивність програми, скорочуючи час виконання вимог.
Ліниві класи у c# дозволяють нам завантажувати дані за запитом, а не при створенні екземпляра [5].
Приклад коду лінивого завантаження:
Lazy<List<int>> listLazy = data.GetList();
public class data
{
public static Lazy<List<int>> GetList(){
Lazy<List<int>> list = new Lazy<List<int>>();
for (int i = 0; i <= 50; i++){
list.Value.Add(i);
}
return list; }}
Література
- Timms S. 15 Simple ASP.NET Performance Tuning Tips [Електронний ресурс] / Simon Timms // stackify. URL: https://stackify.com/asp-net-performance-tuning/.
- MIke R. Рекомендации по повышению производительности ASP.NET Core [Електронний ресурс] / Mike Rousos// Microsoft. 2020. URL:https://docs.microsoft.com/ru-ru/aspnet/core/performance/performance-best-practices?view=aspnetcore-5.0.
- Skeet J. C# in Depth / Jon Skeet. New York City: Manning Publications, 2013. 616 с. (3).
- Лучшие практики для увеличения производительности ASP.NET Core приложений [Електронний ресурс] // bool.dev. 2019. URL: https://bool.dev/blog/detail/luchshie-praktiki-dlya-uvelicheniya-proizvoditelnosti-aspnet-core-prilozheniy.
- Дополнительные классы и структуры .NET Отложенная инициализация и тип Lazy [Електронний ресурс] // Metanit. URL: https://metanit.com/sharp/tutorial/20.1.php.
- Delamater M. Murach’s ASP.NET 4.6 Web Programming with C# 2015 / Mary Delamater. Fresno, CA: Mike Murach & Associates, 2016. 954 с. (6).
Коментарі закрито.
To comment on the article - you need to download the candidate degree and / or doctor of Science