|
|
![]() |
#1 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
![]()
Если разговор об оперативной памяти, то Ил 32-х разрядный и, соответственно, максимальный размер доступной процессу памяти 2 GB (немного меньше на самом деле, примерно 1.75 Gb).
Если мы собрали приложение с ключом /LARGEADDRESSAWARE:YES, то будет доступно 3Gb. У уже готового приложения, которое не пересобрать, можно также увеличить значение до 3 Gb установив один битик в поле характеристики в заголовке файла. Но это может быть чревато случайными ошибками если приложение не знает о возможности использовать соответствующую память. Например, адреса за вторым гигабайтом имеют установленный в единицу старший бит, коды ошибок тоже обычно имеют установленый в единицу старший бит. Допустим наша функция возвращает адрес, а в случае неудачи код ошибки и проверка этого производится с помощью проверки старшего бита на 1, это довольно частая практика. В этом случае, при пересечении границы 2 Gb, программа начнёт считать, что функция возвращает ошибку даже при её успешной работе. Т.е., можно установить, но надо тщательно проверять весь функционал, что не всегда возможно и надёжно. Примерно так. UPD: Да, уточню, в 64-х битной ОС памяти выделится около 3.5 Gb. Если OS 32-х битная, то она сам должна быть запущена с опцией поддержки 3 Gb. Последний раз редактировалось NB79; 12.04.2019 в 15:29. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|