На самом деле файл полностью заблокирован во время работы Visual Studio.

ользую VS 2010 на win 7 64-битной системе с 8 ГБ памяти. Мое приложение 32-битное. В то время как в IDE VS 2010 .Net приложение отображается в диспетчере задач Windows как «MyApp.vshost.exe * 32», а сама ID ID VS отображается как «devenv.exe * 32».

Я проверил, и оказалось, что файл IDE VS 2010 (devenv.exe) соответствует флагу / LargeAddressAware.

Однако при отладке больших моделей в среде IDE возникает ошибка «Недостаточно памяти». В диспетчере задач Windows процесс «MyApp.vshost.exe * 32» указывает на использование около 1400 МБ памяти (в то время как процесс «devenv.exe * 32» значительно меньше 500 МБ). Можно ли установить процесс "MyApp.vshost.exe * 32" в / LargeAddressAware, чтобы избежать ситуации нехватки памяти? Если это так, как это можно сделать в IDE. Хотя установка окончательного двоичного файла приложения на значение / LargeAddressAware будет работать, мне все еще нужно будет иметь возможность отлаживать приложение в среде IDE с такими типами больших моделей. Я также должен отметить, что мое приложение имеет глубокую иерархию объектов со многими коллекциями, которые вместе занимают много памяти. Однако моя проблема не связана с попыткой создать, скажем, 1 большой массив, который требует более 2 ГБ памяти и т. Д.

Должен заметить, что я могу запустить одно и то же приложение в IDE VB6 и не получить ситуации нехватки памяти, если VE IDE выполнен / LargeAddressAware. В случае VB6 IDE и отлаживаемое приложение являются частью одного и того же процесса (а не делятся на 2, как в случае с VS 2010.) Процесс VB6 может быть больше, чем 3 ГБ, без проблем с памятью ,

В конечном счете, моя цель - полностью запустить мое приложение в 64-битной среде, чтобы получить доступ к большему объему памяти. Я надеюсь, что в таких случаях IDE позволит процессу отладки превысить 2 ГБ без сбоев (и, конечно, более 1,4 ГБ, как в текущем случае). Однако на данный момент, хотя 95% моего приложения является 64-разрядным, я вызываю устаревшую 32-разрядную библиотеку COM и, следовательно, все мое приложение вынуждено работать в 32-разрядном режиме, пока я не заменю эту библиотеку.

Ответы на вопрос(0)

Ваш ответ на вопрос