текущая программа, которую я написал, использует очень много памяти, например, утечка памяти. Это можно наблюдать с помощью Нагиоса. Если объем памяти очень большой, а программа работает очень медленно, я получаю дамп памяти через диспетчер задач Windows и анализирую его с помощью JetBrains dotMemory (внешний размер составляет около 1 ГБ). Здесь я вижу реальное использование ок. 73 МБ и использование памяти Heap поколения 2 660 МБ (!), 616 МБ помечены как свободные и используются 42 МБ. Фрагментация составляет 100%.
Я знаю, что не могу влиять на управляемую память, и GC должен автоматически очистить память. Есть какие-то вещи, чтобы рассмотреть, чтобы решить эту проблему?
Программа представляет собой отдельное приложение на C # .NET, созданное с использованием Visual Studio 2015 и .NET 4.6 в режиме «Любой процессор». Я верю, что .NET Framework на целевой машине - это другая версия, но как я могу получить текущую установленную и используемую версию .NET runtime?
Если вам нужна какая-либо другая информация, пожалуйста, спросите меня:)
UPDATE
Программа представляет собой систему управления машиной, которая взаимодействует с SPS через OPC, содержит доступ к базе данных к базе данных Orcale и множество веб-сервисов для связи с другими граничными системами.
UPDATE
Вот изображение использования памяти из dotMemory: