Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Увеличение памяти для приложений WinXP

Автор: Remdale
Дата сообщения: 12.08.2015 21:26
Использую на ноуте WinXP x32. Установлено 8GB оперативки. Проблема: проект в FL Studio потребляет больше 2ГБ памяти, что есть пределом. Из-за этого не могу работать с ним дальше. Хочу увеличить объем выделяемой памяти. Есть переключатель /3GB, но с ним система не запускается, т.к. 1ГБ откусано встроенным видеодрайвером.
Как изменить эту память? Напр. уменьшить до 300.
Как по-другому можно приложению выделить больше 2ГБ памяти?
Есть ли 32-битные системы Windows, где приложению выделяется больше 2ГБ памяти?
PS. Переход на x64 не подходит, т.к. дравера к звуковой карте только x32
Автор: bomzzz
Дата сообщения: 12.08.2015 21:44
http://www.nanocad.ru/help/OptionSupport.php

Цитата:
Хотя опция «3Гб» в целом бывает весьма полезна в работе и позволяет приложениям nanoCAD получить доступ к большим объемам оперативной памяти, следует отметить, что не все аппаратные комплектующие (hardware) и графические драйверы корректно работают в таком режиме.


Цитата:
Как изменить эту память? Напр. уменьшить до 300.

в биосе ищи настройки

Цитата:
Есть ли 32-битные системы Windows, где приложению выделяется больше 2ГБ памяти?

есть - хп, сервер, виста, семерка ...

Цитата:
PS. Переход на x64 не подходит, т.к. дравера к звуковой карте только x32

какая карта звуковая?
http://forum.ru-board.com/topic.cgi?forum=81&topic=8309&start=1140#lt

Цитата:
система не запускается, т.к. 1ГБ откусано встроенным видеодрайвером.

???
Автор: dimitriy7
Дата сообщения: 12.08.2015 22:15
Remdale

Цитата:
Как по-другому можно приложению выделить больше 2ГБ памяти?

Это определяется самим приложением, тем, как оно было скомпилировано:
если с "LARGEADDRESSAWARE" -- до 3 Гб;
если с "AWE" -- сколько угодно;
иначе все равно только 2Гб.
Плюс в ХР РАЕ не работает, так что все равно не более 3 Гб.


Цитата:
Есть ли 32-битные системы Windows, где приложению выделяется больше 2ГБ памяти?

Windows Server всех мастей, но, опять же, приложения должны быть скомпилированы с поддержкой LARGEADDRESSAWARE или AWE. FL Studio к таким разве относится? А для обычных 32-битных приложений -- ВСЕГДА доступно 2 Гб на процесс, даже в 64-битных системах.
Автор: bomzzz
Дата сообщения: 12.08.2015 22:41
http://geektimes.ru/post/202406/
Автор: Remdale
Дата сообщения: 12.08.2015 23:00

Цитата:
в биосе ищи настройки

Биос урезанный. Вот все его вкладки







Цитата:
LARGEADDRESSAWARE

в FL Studio есть такая опция. Уже забыл, чем проверял. А как узнать насчет AWE?

Цитата:
какая карта звуковая?

Edirol UR-80. На офф сайте только драйвер х32. Даже народ в инете говорит, что нету для x64.

Цитата:
???

Вот на скрине видно. 1ГБ памяти занимает


Добавлено:

Цитата:
Windows Server всех мастей

Я имел ввиду 32-битные системы без использования каких-либо ключей типа /3GB. Сегодня пробовал на Windows Server 2003. Без ключа /3GB для приложения выделяется 2ГБ. Проверял с помощью VMMap

Добавлено:

Цитата:
http://geektimes.ru/post/202406/

Этот способ не помог увидеть все 8ГБ ОЗУ. Позже нашел китайский патч XP64G, который использует свои версии ntkrnlpa.exe и hal.dll. Теперь у меня 32-битная ОС и 8ГБ видимой памяти. Работает без проблем. Автор говорит, что с помощью патча система может распознать до 64ГБ памяти.

Добавлено:
Вот скрин
Автор: dimitriy7
Дата сообщения: 12.08.2015 23:29
Remdale

Цитата:
Биос урезанный. Вот все его вкладки

Ну, значит, не судьба -- верхняя часть памяти, с адресами устройств, отображается и в АП процессов. Единственное, что тут можно поделать -- использовать вместе с /3GB еще и ключ /USERVA и передвинуть границу пользовательской памяти вплотную к устройствам, где-то до 2,5 Гб вполне может получиться.

Цитата:
Я имел ввиду 32-битные системы без использования каких-либо ключей типа /3GB

Ну так.. ключи /3GB и /USERVA как раз и позволяют устанавливать нестандартную границу между пользовательской и системной памятью в АП процесса, без них она всегда и во всех системах проходит по 2 Гб.


Цитата:
А как узнать насчет AWE?

Спросить у разработчика. Или включить РАЕ и посмотреть, сколько памяти сможет съесть процесс.


Добавлено:

Цитата:
Позже нашел китайский патч XP64G, который использует свои версии ntkrnlpa.exe и hal.dll. Теперь у меня 32-битная ОС и 8ГБ видимой памяти

Этот патч просто включает РАЕ, это позволит запускать несколько процессов одновременно, но если они собраны без AWE -- каждый процесс по-прежнему будет использовать только 2 Гб.
Автор: Remdale
Дата сообщения: 12.08.2015 23:55

Цитата:
/3GB еще и ключ /USERVA

Я ставил 2100 и 2300, и 2500. При всех этих значениях система запускается с самым отвратительным 4-битным (или 8-битным, уже не помню) отображением и самым минимальным разрешением
Просто не понятно, почему даже если я забрал 100мб у системы, то даже при таком значении видео-драйвер нормально не работает.
Я ставил /3GB без /USERVA, и как я писал выше, система не запустилась. Просто бесконечный бегунок загрузки. НО. В безопасном запускается. Там-то я и проверил работу работу параметра /3GB.
Видеодравер виноват. Резервирует слишком много адресного пространства.

Цитата:
Спросить у разработчика. Или включить РАЕ и посмотреть, сколько памяти сможет съесть процесс

С ключом /3GB FL Studio способна есть все 3ГБ.

Подскажите, пожалуйста, что делать? Как решить такую задачу без перехода на 64-битную систему?
Автор: dimitriy7
Дата сообщения: 13.08.2015 00:58
Remdale

Цитата:
Я ставил /3GB без /USERVA, и как я писал выше, система не запустилась. Просто бесконечный бегунок загрузки. НО. В безопасном запускается. Там-то я и проверил работу работу параметра /3GB.
Видеодравер виноват. Резервирует слишком много адресного пространства.

Можете посмотреть в диспетчере устройств, в "ресурсах по подключению", с какого адреса начинаются устройства -- вот это значение и ставьте в /USERVA.
Больше на вашем железе вы без AWE не получите никак -- ни с /3GB, ни в 64-битной системе, вообще никак. Потому что адреса устройств занимают также и верхнюю часть виртуального адресного пространства каждого 32-битного процесса, и при попытке расширить туда пользовательское пространство будет неизбежен конфликт.
А AWE может создать для процесса окно в верхней памяти, выше 4 Гб -- но я поддержку AWE видел только в SQL-сервере, ее реально очень редко реализуют.
Автор: bomzzz
Дата сообщения: 13.08.2015 06:24
виноват наверно все же не видео драйвер, а материнская плата.

две системы - одна без звука только для этой программы
пропатчить биос
альтернативный аудиодрайвер
смена видео карты
на 2003 сервер могут все дрова подойти. у меня только мышка без дров осталась, а все хпешные подошли. попробуй для начала просто 2003 сервер поставить ентерпрайз. систему имеющуюся закатай в образ, поставь сервер*, закатай в образ, поставь все дрова закатай в образ.

*на сервере надо будет перенастроить систему чтоб она как домашняя пахала, а не как сервер, все хорошо описано в теме сервера тута на форуме. практически хп получится
Автор: Rushmore
Дата сообщения: 13.08.2015 07:05
Remdale
Тут похожая тема: Большой объём памяти в x86 windows. Волшебное слово: fix128.
Автор: Remdale
Дата сообщения: 13.08.2015 09:46

Цитата:
посмотреть в диспетчере устройств, в "ресурсах по подключению", с какого адреса начинаются устройства


Mobile Intel 4 Series Express Chipset Family - там видео
Как по тем адресам узнать о мега(гига)байтах в памяти?

Цитата:
не видео драйвер, а материнская плата

С ключом /3GB в нормальном режиме ОС не запускается, а в безопасном загружается. Т.к. в нем загружается стандартный VGA драйвер, вместо интеловского, занимающего 1ГБ памяти.

Цитата:
две системы - одна без звука только для этой программы

Это не понял

Цитата:
пропатчить биос

Уже планирую это делать. Пока патчей нет. Может есть кто поможет?

Цитата:
альтернативный аудиодрайвер

Это тоже не понимаю

Цитата:
смена видео карты

Она встроенная в чипсет

Цитата:
на 2003 сервер могут все дрова подойти

Если так, то видеодрайвер поставится такой же, как и сейчас. Т.е. тоже будет занимать 1ГБ памяти. Но утверждать не буду, пока не пробовал.

Цитата:
fix128

Сначала думал, что мне это не нужно, т.к. у меня уже есть патч, и ОС всю память уже видит. Но глянул на скрин проги и увидел пункт "Увеличить предел адресации данных для пользовательский приложений". Может это то, что мне нужно? Можно настроить, чтобы приложениям было доступно больше 2ГБ? Или прога вставит /3GB ключ?
Автор: bomzzz
Дата сообщения: 13.08.2015 12:34
http://s009.radikal.ru/i309/1508/9d/b7aeaecc0865.gif
Автор: Remdale
Дата сообщения: 13.08.2015 12:41
Я так же делал (скрин в сообщении выше). Но как перевести те диапазоны памяти в мегабайты?
Автор: bomzzz
Дата сообщения: 13.08.2015 12:48
http://s020.radikal.ru/i705/1508/83/8bda50e7fdb5.gif

у меня все работает, только памяти не добавилось, последние поколение оборудования перед добавлением 36 битной адресации
Автор: Remdale
Дата сообщения: 13.08.2015 13:09

Цитата:
виноват наверно все же не видео драйвер, а материнская плата

Сорри. Уже понял, о чем была речь
Тогда сразу вопрос. Какой диапазон адресов система отдает при использовании /3GB? В конце системной памяти или в начале?
Хочу выяснить, какому устройству не хватает памяти, что ОС не грузится с тем ключом.

Цитата:
у меня все работает

Что работает? Ключ /3GB? Тоже ноутбук?
Автор: bomzzz
Дата сообщения: 13.08.2015 13:10
ну в смисиле что я применил патч - прогу эту, и система после этого загрузилась

Добавлено:
диапозон она отдает тот же самый, просто добавляет память недоступную в общий котел. вроде так. я давно это гуглил читал, когда понять не мог куда гиг памяти подевался

Добавлено:
биос матплаты контачит с биосами или самими устройствами определяет кому сколько надо памяти и выделяет начиная от какого то адреса. может быть патч для биоса, который этот адрес смещает.
Автор: Remdale
Дата сообщения: 13.08.2015 13:31

Цитата:
памяти не добавилось

А какой памяти не прибавилось? Общедоступной оперативки или для приложений?

Цитата:
диапозон она отдает тот же самый

Какую половину от 2ГБ она отдает: первую или вторую?

Цитата:
добавляет память недоступную в общий котел

Что за недоступная память? Она же свою системную отдает вроде как.

Цитата:
патч для биоса, который этот адрес смещает

Мне казалось, что биос раздает только прерывания...
Интересно. Была у меня Win7 и там было указано, что память видеокарты 300МБ. А в XP - 1024МБ. Дело в драйвере. Я сейчас посчитал на калькуляторе и выяснил, что видео 1ГБ никак не занимает.
Автор: bomzzz
Дата сообщения: 13.08.2015 13:38
можно было бы железно эти адреса застолбить, а если пользователь воткнет одну планку памяти на 128 мб?
не то чтобы память недоступна, под досом она вся доступна, память на которую не хватает адресного пространства.
не занимает гиг, а граница начинается на 3 гигах, все что выше для пользовательских приложений недоступно

Добавлено:
наверно видео карта занимает адресного пространства только для буфера, а собственную память уже юзает по своим адресам

Добавлено:
ага видео карта занимает размер видео буфера

Добавлено:
graphic aperture size у меня называется
Автор: Remdale
Дата сообщения: 13.08.2015 13:55

Цитата:
размер видео буфера

...размер которого задается драйвером, да?

Цитата:
наверно видео карта занимает адресного пространства только для буфера

у меня видео строенное, поэтому используется оперативка. И наверное это и есть буфер.

Как я выяснил, ресурсы начинаются на первом мегабайте. Там же и заканчиваются. Затем пусто. И дальше начинаются с 3072МБ. А должны вроде как с 2048, если для приложений выделяется 2ГБ. Так ведь? А где же промежуток между 2048 и 3072?
Автор: bomzzz
Дата сообщения: 13.08.2015 14:02
нет который задается биосом. настройка graphic aperture size или типа того

Добавлено:
ну я не энциклопедия, сейчас могу муры написать, надо читать. для одного приложения выделяется адресного пространства не более 2 гиг, а всего этого адресного пространства для приложения остается 3-3.5 гига в зависимости от матплаты. вот когда используешь \3G для одного приложения - одной программки, выделяется по три гига, если оно умеет столько понимать
Автор: Remdale
Дата сообщения: 13.08.2015 14:09
В fix128 есть пункт "Увеличить предел адресации данных для пользовательский приложений". Чем он изменяет этот предел?
Автор: bomzzz
Дата сообщения: 13.08.2015 14:12
вот под досом у меня все 4 гига доступны, хотя конечно в памяти до 1 мб кое что занято под драйвера, систему и памяти может не хватить для какого нибудь прожорливого приложения. а эта твоя программка не умеет использовать вместо памяти буфер на диске? тогда можно создать рам диск в памяти недоступной для системы используя всего лишь драйвер специальный

Добавлено:

Цитата:
Чем он изменяет этот предел?

наверно вот этим /3g.
ты все же подожди пусть кто нибудь отпишется у кого хотя бы 36 битная адресация поддерживается. я могу неправильно объяснять
Автор: SlavaB
Дата сообщения: 13.08.2015 14:17
Remdale
Не занимайтесь ерундой, перед применением никчемных патчей изучите матчасть.

32-х разрядная ОС Windows, в зависимости от версии и редакции может выделить приложению более 4-х ГБ адресного пространства, но приложение, если его изначально не запрограммировали и не скомпилировали с соответствующим флагом (IMAGE_FILE_LARGE_ADDRESS_AWARE), не может использовать более 4-х ГБ, какие-бы патчи, настройки BIOS и т.п. Вы не применяли.
Все, что делают всевозможные патчи - включают в младших (десктопных, не энтерпрайз серверных) редакциях Windows функционал старших, энтерпрайз, редакций. Да, после этого можно насладиться цифрами доступной памяти в диспетчере задач, свойствах системы и т.п. И нет - использовать эту память одно приложение по-прежднему не сможет, т.к. не умеет.
Опция /3GB изменяет используемую по-умолчанию деление адресного пространства одного приложения в 2 ГБ пользовательской памяти и 2 - системной), на распределение 3 + 1. Но для того, чтобы это работало, система должна уместится в 1 ГБ.
Т.к. в адресное пространство системной памяти попадают драйверы оборудования, то от них сильно зависит, уместится ли системное адресное пространство в этот 1 ГБ.

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

Резюме из вышесказанного - если 32-х разрядное приложение не умеет работать более с чем 4 ГБ адресного пространства, то без его (приложения) переработки, Вы ничего не добьетесь.
Если конфигурация Вашего оборудования не позволяет ОС разместиться в 1 ГБ системного адресного пространства, то ключ /3GB будет выводить ОС из строя.
Автор: Remdale
Дата сообщения: 13.08.2015 14:31

Цитата:
использовать вместо памяти буфер на диске

А как выяснить?

Цитата:
создать рам диск

Уже давно есть. Но после применения одного китайского патча у меня нет недоступной памяти. Видно все 8ГБ. Так что рамдиск в видимой памяти
Цитата:
ты все же подожди

А пофиг. Щас на стационарнике проверю.


Цитата:
IMAGE_FILE_LARGE_ADDRESS_AWARE

В FL Studio есть такое

Цитата:
чтобы это работало, система должна уместится в 1 ГБ

На видео выделяется 1ГБ. Так что система в 1ГБ уже не поместится. НО. Я глянул по адресам ресурсов и не насчитал 1ГБ, который выделился на видео. Память для ресурсов (не считая 1мб в начале) начинается с 3072МБ.
В безопасном режиме загружается стандартный VGA драйвер, поэтому с ключом /3GB для приложений выделяется тот 1ГБ памяти, которую занимала видеокарта?
SlavaB, куда делся промежуток 2048-3072? Может это и есть тот 1ГБ для видеокарты? Если так, то при использовании /3GB система отдает нижний диапазон своей памяти
Автор: SlavaB
Дата сообщения: 13.08.2015 14:48
Remdale
Что Вам мешает установить 64-разрядную ОС ? Windows XP, если она Вам дорога, тоже имеет 64-битную редакцию.
Автор: dimitriy7
Дата сообщения: 13.08.2015 15:17

Цитата:
Но как перевести те диапазоны памяти в мегабайты?

Перевести из 16-ричной системы в десятичную.
У вас выходит 0хС0000000 -> ровно 3 Гб свободных адресов. Именно виртуальных адресов, а не памяти.


Цитата:
Мне казалось, что биос раздает только прерывания...

Далеко не только :)


Цитата:
Но после применения одного китайского патча у меня нет недоступной памяти. Видно все 8ГБ.

Ребят, вы не путайте обычную память с виртуальной, это совсем разные вещи.
Патч просто включил 36-битную адресацию в системе, и только. Система -- да, всю память увидела, но каждому процессу диспетчер памяти все равно выдает ровно те же 4 Гб виртуальных адресов. Из которых старшие адреса перекрываются адресами устройств, теми самыми, с вашего скрина. А ключи /3GB и /USERVA только указывают диспетчеру памяти передать процессам значение границы пользовательских адресов в этих виртпространствах.
Соответственно, на этом конкретном железе можно задать /3GB /USERVA=3072, и программы (те, что с "LARGEADDRESSAWARE") смогут использовать по 3 Гб памяти.
А почему не получилось -- да просто из-за давно известных глюков интеловских видеодрайверов, ну не рассчитаны они ни на РАЕ, ни на /3GB. Надо было сразу написать, что у вас интеловская видеовстройка... Снесите их, пользуйтесь стандартным виндовым VGA-драйвером, если уж так важно получить по 3 Гб памяти на процесс.
Автор: bomzzz
Дата сообщения: 13.08.2015 15:23
в таком случае остается только вторая 64 битная система, без звука но зато с видео нормальным - то есть от плавной прокрутки страниц\окон не будет система подвисать

Добавлено:
а че ты сразу не написал какой ноутбук, может драйвер есть на звук
Автор: Remdale
Дата сообщения: 13.08.2015 15:32

Цитата:
Что Вам мешает установить 64-разрядную ОС ?

У меня звуковая карта с драйверами только для x32. Это единственная проблема
Опробовал на стационарнике fix128. Там используются /3GB и /USERVA

Цитата:
Именно виртуальных адресов, а не памяти

А разве те виртуальные адреса не связаны с физической памятью? Они же в ОЗУ находятся, а не в свопе. Я его отключил

Цитата:
не путайте обычную память с виртуальной

Насчет 8ГБ я не путал. Нужно было, чтобы ОС видела всю память - сделал с помощью патча. Теперь нужно, чтобы для процесса выделялось больше 2ГБ - пока не сделано, пытаюсь выяснить. Ключ /3GB не подходит
Автор: bomzzz
Дата сообщения: 13.08.2015 15:41

Цитата:
/PAE
Используйте параметр /PAE на компьютерах, поддерживающих режим расширения физических адресов (Physical Address Extension, РАЕ). При загрузке в безопасном режиме компьютер использует стандартное ядро независимо от того, указан ли параметр /PAE.

/3GB
Данный параметр предписывает на компьютерах с процессорами x86 выделять 3 ГБ виртуального адресного пространства для использования программами и 1 ГБ — для использования ядром и исполняемыми компонентами. Программы должны поддерживать дополнительную память. Если указан параметр /3GB, то программам пользовательского режима доступны 3 ГБ памяти вместо 2 ГБ, выделяемых по умолчанию. Если указан этот параметр, ядро использует область памяти, начинающуюся после 3 ГБ. Параметр необходим для определенных конфигураций Exchange Server 2003 и Windows Server 2003.

https://support.microsoft.com/ru-ru/kb/833721

Добавлено:
подходит
Автор: Remdale
Дата сообщения: 13.08.2015 16:02

Цитата:
а че ты сразу не написал какой ноутбук

У меня внешная карточка. Хотя даже на карточку не похожа
Edirol UR-80
Может есть способ 32-битный драйвер установить в 64-битной ОС, напр. изменением строк в .inf файле?

Цитата:
подходит

Интересно. Может /maxmem? Как попробую, так сразу и отпишусь
Еще раз повторюсь. /3GB не подходит

Страницы: 1234

Предыдущая тема: Наблюдение за параллельной сессией Win 7


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.