Сравните объем памяти приложений .Net и VB6 - PullRequest
4 голосов
/ 31 октября 2008

Я пытался сравнить объем памяти между приложением VB6 и приложением .Net. Попытка определить среднюю разницу между ними.

.Net-код по большей части является прямым переводом VB6 и по большей части содержит те же инструкции, что и запрограммированные в C #. Так что, хотя это сравнение между яблоками и апельсинами, это сравнение программ, которые функционально (если не логически) эквивалентны.

Я использовал Process Explorer , чтобы помочь мне определить использование памяти приложениями, однако есть несколько областей, которые оставили меня в недоумении:

  1. Я пытался определить общее потребление памяти. Какой из столбцов памяти процесса я должен использовать. До сих пор я смотрел на рабочие наборы.
  2. Для сравнения размера DLL в приложении PExplorer показывает Size, WS Total и другие счетчики WS, как их можно интерпретировать? И почему Размер так отличается от WS Total, не должны ли они быть одинаковыми?

Пока я понял, что в WS Total входят как WS Private, так и WS Shareable. Таким образом, использование только WS Total может быть обманчивой мерой. Я также прочитал из вопросов, таких как .Net exe памяти , что рабочий набор .Net обычно больше, чем должно быть. Может ли создание экземпляра процесса в среде с нехваткой памяти, скажем, виртуальной машиной с 128 МБ уменьшить размер рабочего набора до минимума?

Буду признателен за любую помощь или понимание.

1 Ответ

3 голосов
/ 31 октября 2008

На этот счет написано хорошее эссе Марка Руссиновича.

Вы можете вручную уменьшить рабочий набор вашего приложения с помощью вызова Win32 API SetProcessWorkingSetSize (GetCurrentProcess (), -1, -1). Это то, что Windows будет делать в любом случае, когда системе не хватает памяти, но контроль, когда это происходит самостоятельно, позволяет обрезать рабочий набор приложения .NET до минимального размера для целей расследования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...