Фрагментация памяти Windows 10 при длительном запуске приложения

Мы сталкиваемся с проблемой фрагментации памяти в нашем 32-битном приложении (на C ++ и WPF). когда мы запускаем его в течение 100 часов. как часть автоматизированного теста. Приложение падает после запуска AST в течение ~ 14 часов.

Мы используем CRT-кучу с политикой LFH (Низкая фрагментная куча), включенной исключительно в Main(), Проблема идет на платформе Windows 10. Нет проблем на платформе Windows 8 с тем же набором наших двоичных файлов приложения. Мы завершили 100 часов. запустить для тестирования на платформе Windows 8.

Мы создаем большую кучу блоков в Main() Метод и эту кучу мы используем для конкретной цели, когда нам требуется большой объем памяти, и мы управляем этим в нашем коде. Из журналов статистики виртуальной памяти видно, что начальное распределение виртуальной памяти составляет 1,79 ГБ.

После 14 часов автоматизированного пробного запуска: на windows 10

   Combined Available = 1590176752( 1516.511 MB)
Combined Max Available = 3989504( 3.805 MB)
Combined Frag Percent = 99.75%
CRT:sum_alloc          = 2737569144(98.50%, 2610.749 MB)
CRT:max_alloc          =    4458496(          4.252 MB)
CRT:allocAverageSize   =       9043
CRT:num_free_blocks    =      37813
CRT:sum_free           =   22620888( 0.81%,  21.573 MB)
CRT:max_free           =     514104(          0.490 MB)

VM:sum_free = 1581957120(36.83%,1508.672 MB)
VM:max_free = 10321920( 9.844 MB)

На Windows 8 в течение 100 часов.

  • Доступно в комбинации = 1881204960 (1794,057 МБ)

  • Максимальный комбинированный доступ = 1734127616 (1653,793 МБ)

  • Комбинированный процент осколков = 7,82%

  • VM: sum_free = 1845817344 (42,98%, 1760,309 МБ)

  • VM: max_free = 1734127616 (1653,793 МБ)

Мы используем ADPlus и (средства отладки для Windows, Windbg и DebugDiag) для сбора дампов памяти с интервалом в 3 часа.

Есть ли какие-либо настройки или флажки, которые мне нужно включить, или все, что мне нужно сделать с помощью кода, используя VS2010.

Приложение основано на 64-битной Windows 10 LTSB (которая является очень специфической версией Enterprise OS для Windows 10, обеспечивает стабильность и безопасность)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]