Трей приложение занимает 40 Мб в xp и 10 МБ в win7


Я разработал небольшое приложение на C# (.net 3.5), которое работает в системном трее. В основном он просто проверяет rss-канал каждые 5 минут, и если с момента последней проверки появился новый канал, он отображает всплывающую подсказку, а также использует механизм преобразования текста в речь в .net 3.0/3.5 для чтения заголовка выбранного канала.

Это работает нормально, но я заметил, что на Windows7 это занимает около 9-10 МБ во время работы, но в XP это занимает 39-40 Мб. Я понятия не имею, почему. Кто-нибудь что-нибудь знает? о том, что это может быть?

2 3

2 ответа:

Может быть, потому, что windows 7 использует .net в некоторых своих компонентах, поэтому много памяти разделяется между вашим процессом и системой.

В XP все сборки .Net не загружаются каким-либо процессом системы, поэтому память отображается как частная в вашем процессе.

Являются ли ваши показания из столбца использование Mem в диспетчере задач? Затем вы смотрите на рабочий размер набора. Объем активной памяти, используемой приложением, загруженным в оперативную память. Это может быть не то, что вы хотите сравнить. Попробуйте минимизировать свое приложение. Посмотрите, как значительно снижается использование Mem. Это не означает, что приложения используют меньше памяти, как только вы ее минимизируете. Это означает, что Windows думает, что вы не собираетесь использовать приложение в ближайшее время и заменяет память из оперативной памяти в файл подкачки. Вы можете проверить столбец размер виртуальной машины для сравнения. Конечно, вы все еще можете задать себе вопрос, почему размер рабочего набора отличается, но на этот вопрос гораздо сложнее ответить. Также смотрите здесь для объяснения различных чтений памяти.