WPF приложение почти пустое при старте отъедает 15 мегабайт памяти.
Открываю диалог редактирования — оп и еще 10 мегабайт.
Диалог простенький — 4 текстбокса и где-то 10 кнопочек.
Запускаю под профайлером.
.Net объектов на 3 мегабайта, остальное Unmanaged Memory.
Это у всех так?
Это еще дааалеко не вся функциональность реализована и я боюсь что когда закончим приложение будет жрать под 200 мегабайт.
PS Аналогичное приложение с полным функционалом, но нативное, занимает 4мегабайта в худшем случае.
PSS Да я знаю, что потребляемая память в .Net это не очень объективный показатель, но всеже.
Здравствуйте, syrompe, Вы писали:
S>WPF приложение почти пустое при старте отъедает 15 мегабайт памяти. S>Открываю диалог редактирования — оп и еще 10 мегабайт. S>Диалог простенький — 4 текстбокса и где-то 10 кнопочек. S>Запускаю под профайлером. S>.Net объектов на 3 мегабайта, остальное Unmanaged Memory. S>Это у всех так? S>Это еще дааалеко не вся функциональность реализована и я боюсь что когда закончим приложение будет жрать под 200 мегабайт.
При довольно большой загрузке в нашем проекте, Process Explorer показывает в .NET CLR Memory:
Total committed Bytes — 61 472 768
Total reservers Bytes — 83 865 600
Короче, до 200 вполне может дорасти, если будет использоваться много WPF объектов. Около 1000 контролов, не считая содержимого их шаблонов.
При достаточном объеме оперативной памяти двумястами мегабайт может и не ограничиться.
Насколько я понимаю, GarbageCollector начинает суетиться только при большом проценте потребляемой памяти относительно доступной.
Здравствуйте, v.makeev, Вы писали:
VM>При достаточном объеме оперативной памяти двумястами мегабайт может и не ограничиться. VM>Насколько я понимаю, GarbageCollector начинает суетиться только при большом проценте потребляемой памяти относительно доступной.
Да GC я "подсуетил" ручками.
Смущают два факта:
1. Из 25 мегабайт 3 мегабайта это .Net объекты, остальное что-то там Unmanaged (ну так мне ants memory profiler пишет)
2. Открытие одного диалогового окошка на котором всего 8 элементов управления съедает 10 мегабайт.
Здравствуйте, syrompe, Вы писали:
S>Да GC я "подсуетил" ручками. S>Смущают два факта: S>1. Из 25 мегабайт 3 мегабайта это .Net объекты, остальное что-то там Unmanaged (ну так мне ants memory profiler пишет) S>2. Открытие одного диалогового окошка на котором всего 8 элементов управления съедает 10 мегабайт.
Окно может тянуть за собой много чего. Скажем, подключаются дополнительные сборки, инициализируются новые классы, JIT-ится незадействованный ранее код.