2017-01-17 2 views
3

Исторически сложилось, что проблемы с RAD-студией заканчиваются из-за нехватки памяти, что больше не происходит с XE10 Seattle. У нас есть много наших собственных компонентов, которые никогда не проверялись на большую память и не нуждались в нем, когда они встроены в наши приложения. Но у нас недавно была ошибка IDE из-за экземпляра времени разработки компонента, созданного по адресу, указанному выше 2Gb (который мы зафиксировали).Испытание с большой памятью в IDE

У меня есть ощущение, что я где-то читал, что у Embarcadero есть метод тестирования RAD Studio (опция командной строки) для более высокой совместимости с памятью, но не может найти ссылку в любом месте. Кто-нибудь знает, как заставить высвободить выделение памяти в IDE, чтобы проверить время разработки дизайна компонента или альтернативный способ тестирования в приложении, которое пишет что-то, что просто крадет всю нижнюю память.

Я попробовал опцию «выделить сверху» в FastMM, но это только начинается с 2 Гбит вниз, даже когда исполняемый файл установлен для использования более высокой памяти.

+1

- * ".. FastMM, но это только начинает выделять из 2Gb .." *. - Все, что делает FastMM, - это использовать флаг 'MEM_TOP_DOWN' при вызове' VirtualAlloc', когда включено определение. Это официальный способ распределения памяти сверху вниз. –

ответ

2

Самый эффективный способ проверить это - заставить систему распределить память сверху вниз. Как это сделать, описано здесь: https://msdn.microsoft.com/en-us/library/bb613473.aspx

Заставить распределение выделить из старших адресов, прежде чем нижние адреса для целей тестирования, указать MEM_TOP_DOWN при вызове VirtualAlloc или установить следующее значение реестра 0x100000:

HKEY_LOCAL_MACHINE \ Management System менеджер \ CurrentControlSet \ Control \ Session \ Память \ AllocationPreference

После того, как вы измените настройки вам нужно будет перезагрузить компьютер реестра.

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

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