2010-08-16 3 views
3

Надеюсь, вы могли бы мне помочь ..ServiceHost Эффективность

Я использую WCF в своей программе. Часть этого включает использование ServiceHost в сценарии типа самообслуживания с использованием netNamedTypeBinding. Когда я включаю ServiceHost в свой класс, а затем создаю экземпляр этого класса (на данный момент ServiceHost установлен на null), использование памяти увеличивается примерно на 9 Мб. Если я прокомментирую атрибут ServiceHost, память не скачет.

Это прекрасный старый кусок памяти, используемый ServiceHost. Есть ли все равно, чтобы сократить это или есть версия ServiceHost, которая является более компактной? Просить отчаяния, насколько мне нужно, чтобы моя программа была максимально эффективной для памяти.

Большое спасибо за ваше время

+0

И как вы измеряете эту память? –

ответ

1

Прямой ответ: Нет, вероятно, нет. Вы забираете значительную библиотеку, и вам просто нужно заплатить цену.

Но пара моментов:

  • на любой платформе, которая может работать WCF вообще, 9MB не должно быть много.
  • Измерение использования памяти в современной ОС сложное. Какое значение памяти (их много) вы используете для этого?
+0

Привет, Хенк, Спасибо за ваш ответ! Я измерял это с помощью SysInternals ProcExplorer и использовал поле PrivateBytes для рассматриваемого процесса. Я подключил отладчик к процессу и шагнул в него, оставив при этом взгляд на ProcExplorer. Crude, я знаю, но это позволило мне прокомментировать различные предметы и увидеть влияние на используемую память. Вы правы, хотя 9Mb кажется приемлемым для меня, но не для тех полномочий, которые были бы :(Позор действительно, поскольку WCF обрабатывает все обратные вызовы и т. Д., Которые мне нужны. Еще раз спасибо за ваш ответ! – rostrond

Смежные вопросы