Мое намерение состоит в том, чтобы делить dll между моими приложениями, так что если, например, у меня есть 2 приложения, которые загружают dll 20 МБ, чем вместо одного процесса, использующего память 200 МБ, а другого - тоже 200 МБ, одно из них получит выгоду от совместного использования ииспользуйте только 180 МБ памяти.Моя проблема с определением памяти, пожалуйста, продолжайте читать.
Я создал 2 приложения .net c #, которые ссылаются и запускают код из большой библиотеки DLL (20 МБ), которая находится в GAC.С .NET Memory Profiler я мог видеть, что фактически фактическая физическая память, которая использовалась вторым процессом, была значительно ниже той, которая была запущена первой (хотя они идентичны), и что dll была расположена под общей памятью первогопроцесс.Тем не менее, при проверке счетчиков памяти с помощью perfmon я увидел, что виртуальная память обоих приложений увеличивается (по сравнению с размером DLL) на тот же размер, который они увеличивают при запуске каждого из них по отдельности.
Это приводит кВопрос: Какой смысл в совместном использовании (в экономическом отношении с памятью) библиотеки DLL, если от этого выигрывает только физическая память, но виртуальная память, которая с точки зрения приложения, важна.
Редактировать: Спасибо за ответы.Основываясь на ответах, я хочу подчеркнуть, что я понимаю, как полезно делиться DLL в памяти, чтобы сохранить физическую память.Более точный вопрос, который я должен задать: есть ли какая-то польза от приложений (не от системы) от способа, которым библиотеки DLL распределяются между приложениями в .net?Я спрашиваю об этом потому, что меня волнует количество виртуальной памяти, которую используют мои приложения (всего).