Как я создаю (32-разрядное) приложение.NET для использования 3 ГБ RAM?

Я думаю, что ваш CSS связан, но проблема в пути фонового изображения. это выглядит так:

вам нужно изменить путь к style.css: -

#cellPic{
     background-image: url("./../pics/bird.png");  
}
12
задан Will 4 September 2013 в 04:38
поделиться

6 ответов

.NET exe является все еще стандартным файлом PE; таким образом, Вы могли попытаться использовать editbin /LARGEADDRESSAWARE установить флаг, но отметить, что это не будет работать при использовании чего-то как ClickOnce (так как это поддерживает криптографический хеш файлов).

Однако обратите внимание, что у Вас все еще будут те же пределы.NET с точки зрения максимального размера отдельного объекта / массивом. Для огромных объемов памяти x64 является лучшей идеей.

13
ответ дан 26 October 2019 в 10:47
поделиться

Необходимо также увеличить максимальный размер рабочего набора процесса: посмотрите SetProcessWorkingSetSize API.

1
ответ дан 26 October 2019 в 10:47
поделиться

Вы могли попытаться использовать Дистанционную работу через Именованные каналы и получить больше памяти путем физического наличия большего количества процессов.

При выполнении какой-либо формы interop (и нормальное количество сокетов .NET здесь), необходимо создать объектный кэш (например, с сокетами байт [] буфер), который выделяет большую сумму этих объектов при запуске приложения.

Необходимо прочитать эту статью.

0
ответ дан 26 October 2019 в 10:47
поделиться

/3GB переключатель находится на загрузчике ОС, не на Ваших приложениях. (РЕДАКТИРОВАНИЕ: Это также присутствует в собственных компиляторах C/C++, но не компиляторе C#), Что касается Вашего приложения, это запросит память, и ОС даст его Вашему процессу. Однако у Вас есть доступ к еще 1 концерту (потенциально, Вы не всегда получаете 3 ГБ в зависимости от своей периферии), прежде чем Ваша программа будет использовать виртуальную память.

Как Marc Gavell указал мне, Вы, возможно, должны выполнить команду "editbin/LARGEADDRESSAWARE my.exe" как опция сборки сообщения на Вашем exe для включения этого. Найденный ссылкой на человека MS, говорящего об этом здесь: Форумы MS

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

6
ответ дан 26 October 2019 в 10:47
поделиться

Ну, я не уверен в этом, но это - то, что я думаю:

A. СЕТЕВОЙ исполняемый файл может быть скомпилирован двумя способами - конкретная платформа и независимая платформа. По умолчанию они - независимая платформа, и кодом является (как упомянуто в других ответах) JIT'ed на платформу определенный код при запущении программы.

Теперь, например, если Ваш исполняемый файл является одним из этих платформы-independant, и Вы выполняете его на 64-разрядной ОС, это будет JIT'ed к 64-битному коду, правильно? Таким образом это сможет обратиться к пути больше это 3 ГБ RAM.

То, что я пытаюсь сказать, - я не думаю, что имеет значение вообще, что записано в заголовке PE. Фактическая сумма доступной RAM определяется временем выполнения.NET, которое в свою очередь смотрит на текущую платформу и производит лучший код JIT'ed, это может.

Я думаю, что Вы не должны волноваться о переключателе/3GB, поскольку.NET будет заботиться о нем для Вас. Доверие.NET!:)

0
ответ дан 26 October 2019 в 10:47
поделиться

Насколько я помню,/3GB переключатель может только использоваться для Windows Server (2000 или 2003), но не для Windows XP. Необходимо записать/3GB в конце файла boot.ini. Таким образом, для приложений, ОС включает больше памяти, которую это обычно выделяет для использования для процессов ядра. Однако/3GB не означает, что можно использовать 3 ГБ памяти для приложения, это просто может использовать больше памяти, но это должны не обязательно быть 3 ГБ. Для приложений .NET, снова насколько я помню с переключателем/3GB, можно использовать до 1.8 ГБ памяти. Между прочим, Вы могли бы также хотеть проверить переключатель/PAE.

-1
ответ дан 26 October 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: