Abstract
Представлено исследование алгоритма Dispose-паттерна, который используется в теории принятия решений в задачах управления памятью приложений в .NET. В долго работающих приложениях, с избыточным использованием памяти появляются предпосылки для частого запуска сборщика мусора, который работает с управляемыми ресурсами. Неуправляемые ресурсы без явной очистки могут инициировать проблемы памяти при ликвидации связанных с ними управляемых ресурсов. Составлена блок-схема метода очистки, получен алгоритм использования Dispose-паттерна в клиент-компонентной модели. Получены количественные значения различных характеристик работы сборщика мусора таких, как объем физической памяти, величина процессорного времени, максимальная пауза работы процесса и др. Данные собраны на основе приложения, состоящего из компонента и клиента, написанных на языке С#, запущенных в среде Visual Studio. Рассматриваемый компонент совместим с .NET Framework и не является компонентом Component Object Model. Сравниваются результаты работы приложения с запуском финализатора и без него. Полученные результаты помогут лицу, принимающему решение в выборе критерия оценки различных методов управления памятью, формировании однокритериальной или многокритериальной оптимизационной модели при принятии решения.
The paper presents a study of the Dispose-pattern algorithm, which is used in decision theory in problems of memory management of applications in .NET. In long running applications with excessive memory usage, there are prerequisites for the frequent launch of the garbage collector, which works with managed resources. Unmanaged resources without explicit cleanup can cause memory problems when the associated managed resources are disposed of. A block diagram of the cleaning method was compiled, an algorithm for using the Dispose-pattern in the client-component model was obtained. Quantitative values of various characteristics of the garbage collector are obtained, such as the amount of physical memory, the amount of processor time, the maximum pause of the process, etc. The data is collected on the basis of an application consisting of a component and a client written in C #, running in the Visual Studio environment. The component in question is compatible with the .NET Framework and is not a Component Object Model. The results of the application are compared with and without running the finalizer. The results obtained will help the decision-maker in choosing a criterion for assessing various methods of memory management, in the formation of a single-criterion or multi-criteria optimization model when making a decision.
Publisher
Voronezh Institute of High Technologies
Reference11 articles.
1. Анализ проблем с памятью .NET Framework. Microsoft. Документация. 2016. Доступно по адресу: https://technet.microsoft.com/ru-ru/evalcenter/dn342825(v=vs.85)/ (дата обращения: 20.06.2020 г.).
2. Костикова А. В. Исторические аспекты развития теории принятия решений. Философия науки, 2014;3(62):16-28.
3. Уотсон Бен. Высокопроизводительный код на платформе .NET. 2-е изд. - СПб.: Питер, 2019:1-416.
4. Atienza D., Mamagkakis S. Dynamic Memory Management Design Methodology for Reduced Memory Footprint in Multimedia and Wireless Network Applications. Computer Science Proceedings Design, Automation and Test in Europe Conference and Exhibition. 2004:1-74.
5. GC.Collect Method. Microsoft. Документация. Доступно по адресу: https://docs.microsoft.com/ru-ru/dotnet/api/system.gc.collect?view=netcore-2.0/ (дата обращения: 15.06.2020 г.).