<?xml version="1.0" encoding="UTF-8"?>
<article article-type="research-article" dtd-version="1.3" xml:lang="ru" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://metafora.rcsi.science/xsd_files/journal3.xsd">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">moitvivt</journal-id>
      <journal-title-group>
        <journal-title xml:lang="ru">Моделирование, оптимизация и информационные технологии</journal-title>
        <trans-title-group xml:lang="en">
          <trans-title>Modeling, Optimization and Information Technology</trans-title>
        </trans-title-group>
      </journal-title-group>
      <issn pub-type="epub">2310-6018</issn>
      <publisher>
        <publisher-name>Издательство</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.26102/2310-6018/2020.30.3.013</article-id>
      <article-id pub-id-type="custom" custom-type="elpub">819</article-id>
      <title-group>
        <article-title xml:lang="ru">Исследование алгоритма Dispose-паттерна при принятии решений управления памятью в клиент-компонентной модели .NET</article-title>
        <trans-title-group xml:lang="en">
          <trans-title>Investigation of the Dispose-Pattern Algorithm in Making Memory Management Decisions in the .NET Client-Component Model</trans-title>
        </trans-title-group>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes">
          <name-alternatives>
            <name name-style="eastern" xml:lang="ru">
              <surname>Попова</surname>
              <given-names>Елена Владимировна</given-names>
            </name>
            <name name-style="western" xml:lang="en">
              <surname>Popova</surname>
              <given-names>Elena Vladimirovna</given-names>
            </name>
          </name-alternatives>
          <email>serana5@inbox.ru</email>
          <xref ref-type="aff">aff-1</xref>
        </contrib>
      </contrib-group>
      <aff-alternatives id="aff-1">
        <aff xml:lang="ru">СПбГЭТУ «ЛЭТИ»</aff>
        <aff xml:lang="en">Saint Petersburg Electrotechnical University "LETI"</aff>
      </aff-alternatives>
      <pub-date pub-type="epub">
        <day>01</day>
        <month>01</month>
        <year>2026</year>
      </pub-date>
      <volume>1</volume>
      <issue>1</issue>
      <elocation-id>10.26102/2310-6018/2020.30.3.013</elocation-id>
      <permissions>
        <copyright-statement>Copyright © Авторы, 2026</copyright-statement>
        <copyright-year>2026</copyright-year>
        <license license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/">
          <license-p>This work is licensed under a Creative Commons Attribution 4.0 International License</license-p>
        </license>
      </permissions>
      <self-uri xlink:href="https://moitvivt.ru/ru/journal/article?id=819"/>
      <abstract xml:lang="ru">
        <p>Представлено исследование алгоритма Dispose-паттерна, который используется в&#13;
теории принятия решений в задачах управления памятью приложений в .NET. В долго&#13;
работающих приложениях, с избыточным использованием памяти появляются предпосылки для&#13;
частого запуска сборщика мусора, который работает с управляемыми ресурсами. Неуправляемые&#13;
ресурсы без явной очистки могут инициировать проблемы памяти при ликвидации связанных с&#13;
ними управляемых ресурсов. Составлена блок-схема метода очистки, получен алгоритм&#13;
использования Dispose-паттерна в клиент-компонентной модели. Получены количественные&#13;
значения различных характеристик работы сборщика мусора таких, как объем физической&#13;
памяти, величина процессорного времени, максимальная пауза работы процесса и др. Данные&#13;
собраны на основе приложения, состоящего из компонента и клиента, написанных на языке С#,&#13;
запущенных в среде Visual Studio. Рассматриваемый компонент совместим с .NET Framework и&#13;
не является компонентом Component Object Model. Сравниваются результаты работы&#13;
приложения с запуском финализатора и без него. Полученные результаты помогут лицу,&#13;
принимающему решение в выборе критерия оценки различных методов управления памятью,&#13;
формировании однокритериальной или многокритериальной оптимизационной модели при&#13;
принятии решения.</p>
      </abstract>
      <trans-abstract xml:lang="en">
        <p>The paper presents a study of the Dispose-pattern algorithm, which is used in decision theory&#13;
in problems of memory management of applications in .NET. In long running applications with&#13;
excessive memory usage, there are prerequisites for the frequent launch of the garbage collector, which&#13;
works with managed resources. Unmanaged resources without explicit cleanup can cause memory&#13;
problems when the associated managed resources are disposed of. A block diagram of the cleaning&#13;
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&#13;
amount of physical memory, the amount of processor time, the maximum pause of the process, etc. The&#13;
data is collected on the basis of an application consisting of a component and a client written in C #,&#13;
running in the Visual Studio environment. The component in question is compatible with the .NET&#13;
Framework and is not a Component Object Model. The results of the application are compared with and&#13;
without running the finalizer. The results obtained will help the decision-maker in choosing a criterion&#13;
for assessing various methods of memory management, in the formation of a single-criterion or multicriteria optimization model when making a decision.</p>
      </trans-abstract>
      <kwd-group xml:lang="ru">
        <kwd>алгоритм метода управления памятью</kwd>
        <kwd>принятие решений</kwd>
        <kwd>dispose-паттерн</kwd>
        <kwd>финализатор</kwd>
        <kwd>клиент-компонентная модель</kwd>
      </kwd-group>
      <kwd-group xml:lang="en">
        <kwd>memory management method algorithm</kwd>
        <kwd>decision making</kwd>
        <kwd>dispose-pattern</kwd>
        <kwd>finalizer</kwd>
        <kwd>clientcomponent model</kwd>
      </kwd-group>
      <funding-group>
        <funding-statement xml:lang="ru">Исследование выполнено без спонсорской поддержки.</funding-statement>
        <funding-statement xml:lang="en">The study was performed without external funding.</funding-statement>
      </funding-group>
    </article-meta>
  </front>
  <back>
    <ref-list>
      <title>References</title>
      <ref id="cit1">
        <label>1</label>
        <mixed-citation xml:lang="ru">Анализ проблем с памятью .NET Framework. Microsoft. Документация. 2016.&#13;
Доступно по адресу: https://technet.microsoft.com/ru-ru/evalcenter/dn342825(v=vs.85)/&#13;
(дата обращения: 20.06.2020 г.).&#13;
</mixed-citation>
      </ref>
      <ref id="cit2">
        <label>2</label>
        <mixed-citation xml:lang="ru">Костикова А. В. Исторические аспекты развития теории принятия решений.&#13;
Философия науки, 2014;3(62):16-28.</mixed-citation>
      </ref>
      <ref id="cit3">
        <label>3</label>
        <mixed-citation xml:lang="ru">Уотсон Бен. Высокопроизводительный код на платформе .NET. 2-е изд. - СПб.:&#13;
Питер, 2019:1-416.&#13;
</mixed-citation>
      </ref>
      <ref id="cit4">
        <label>4</label>
        <mixed-citation xml:lang="ru">Atienza D., Mamagkakis S. Dynamic Memory Management Design Methodology for&#13;
Reduced Memory Footprint in Multimedia and Wireless Network Applications. Computer&#13;
Science Proceedings Design, Automation and Test in Europe Conference and Exhibition.&#13;
2004:1-74.&#13;
</mixed-citation>
      </ref>
      <ref id="cit5">
        <label>5</label>
        <mixed-citation xml:lang="ru">GC.Collect Method. Microsoft. Документация. Доступно по адресу:&#13;
https://docs.microsoft.com/ru-ru/dotnet/api/system.gc.collect?view=netcore-2.0/ (дата&#13;
обращения: 15.06.2020 г.).</mixed-citation>
      </ref>
      <ref id="cit6">
        <label>6</label>
        <mixed-citation xml:lang="ru">Производительность .NET Framework. Microsoft. Документация. 2017. Доступно по&#13;
адресу: https://docs.microsoft.com/ru-ru/dotnet/framework/performance/ (дата&#13;
обращения: 19.07.2020 г.).&#13;
</mixed-citation>
      </ref>
      <ref id="cit7">
        <label>7</label>
        <mixed-citation xml:lang="ru">Албахари Д., Албахари Б. C# 5.0. Справочник. Полное описание языка. :Пер. с англ.&#13;
- М.:ООО "И. Д. Вильямс", 2014:1-1008.&#13;
</mixed-citation>
      </ref>
      <ref id="cit8">
        <label>8</label>
        <mixed-citation xml:lang="ru">Реализация метода Dispose. Microsoft. Документация. 2020. Доступно по адресу:&#13;
https://docs.microsoft.com/ru-ru/dotnet/standard/garbage-collection/implementingdispose/ (дата обращения 10.07.2020 г.).&#13;
</mixed-citation>
      </ref>
      <ref id="cit9">
        <label>9</label>
        <mixed-citation xml:lang="ru">Michaelis M. Essential C# 3.0: For .NET Framework 3.5, Pearson Education, Inc., 2009:1-&#13;
335.</mixed-citation>
      </ref>
      <ref id="cit10">
        <label>10</label>
        <mixed-citation xml:lang="ru">ГОСТ 19.701-90 (ИСО 5807-85) "Единая система программной документации". М.:&#13;
Стандартинформ, 2010:1-23.&#13;
</mixed-citation>
      </ref>
      <ref id="cit11">
        <label>11</label>
        <mixed-citation xml:lang="ru">Parkinson M. et al. Project Snowflake: Non-blocking Safe Manual Memory Management&#13;
in .NET. Microsoft Research, 2017:1-40.</mixed-citation>
      </ref>
    </ref-list>
    <fn-group>
      <fn fn-type="conflict">
        <p>The authors declare that there are no conflicts of interest present.</p>
      </fn>
    </fn-group>
  </back>
</article>