Выделение памяти более 2Gb

Тема в разделе "WASM.WIN32", создана пользователем tracert, 4 окт 2007.

  1. tracert

    tracert New Member

    Публикаций:
    0
    Привет всем.
    Есть машинка с 4Гб оперативки, ХР SP1 Pro.
    При попытке выделить более 2 Гб возвращается нулевой указатель. Пробовал GlobalAlloc, LocalAlloc, VirtualAlloc. Диспетчер задач показывает, что доступно 3.2 Гб физической или 5.6 Гб виртуальной.
    Подскажите, где копать.
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Рихтер, главу про AWE.
     
  3. flankerx

    flankerx New Member

    Публикаций:
    0
    Так и должно быть. Доступное адресное пространство для 32-х битных приложений — от 0x10000 до 0x80000000 (т.е. чуть меньше 2 Гб) часть из которого уже занята образом исполняемого файла и загруженными библиотеками.
     
  4. tracert

    tracert New Member

    Публикаций:
    0
    Спасибо, помогло!
     
  5. Solo

    Solo New Member

    Публикаций:
    0
    ключ /3gb в boot.ini может несколько отсрочить возникновение проблемы :)
     
  6. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    помню ломал я какую-то строительную приблуду
    через какое-то время клиент звонит и умоляет помочь
    он там нахерачил-нахерачил насоздавал-насоздавал а расчет не идет - падает
    ну прислал мне исходный файл, я поковырялся, разобрался - расчетка сжирает всю виртуальную память в процессе, exception и на выход
    система 2к3, чистая, на варе
    так вот - ставил я такой ключ - фиг
    поднял чистую 2к - фиг
    хп не стал пробовать даже
    поднял чистый 98(!) - прошел расчет, но медленно зараза, там хипаллок в разы тормознее почему-то
    немного добавил в схему - чуть-чуть буквально - и 98 тоже exception
     
  7. asmfan

    asmfan New Member

    Публикаций:
    0
    z0mailbox
    К такому ключу не забыл IMAGE_FILE_LARGE_ADDRESS_AWARE? да ещё много там тонкостей в выделении... всё из-за фрагментации виртуальной памяти всякими длл с бездумными базами загрузки образа... В данном случае выигрывает выделение малыми кусочками, но много раз.
     
  8. qwerty_9876

    qwerty_9876 New Member

    Публикаций:
    0
    Ставь 64-х ось, компилируй 64-bit код и выделяй памяти хоть терабайтами.