Физическая память и файл подкачки в Windows.
От: black_wolf_ltd  
Дата: 05.11.06 14:34
Оценка:
Вобщем так. Хочу сделать следующее.

При загрузке игра определяет размер доступной _физической_ памяти, после чего выделяет ее значительный процент себе по каким-то разумным кусочкам пока эти разумные кусочки можно выделять в физической памяти.

Далее игра создает собственный своп и использует его, не трогая системный.

Под винду.

Существуют ли способы

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

Другими словами, _очень_ хочется иметь полный контроль за тем, что будет происходить и хочется понять :

1. А это вообще можно сделать ?
2. Куда копать ?

Большое спасибо.

14.11.06 15:15: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Физическая память и файл подкачки в Windows.
От: Сергей Мухин Россия  
Дата: 05.11.06 16:35
Оценка:
Здравствуйте, black_wolf_ltd, Вы писали:

__>Вобщем так. Хочу сделать следующее.


везет же людям. Есть работающая программа, сделанная собстевнными руками, осталось малость.
Интересно какой тип игры?
---
С уважением,
Сергей Мухин
Re[2]: Физическая память и файл подкачки в Windows.
От: black_wolf_ltd  
Дата: 05.11.06 16:45
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, black_wolf_ltd, Вы писали:


__>>Вобщем так. Хочу сделать следующее.


СМ>везет же людям. Есть работающая программа, сделанная собстевнными руками, осталось малость.

СМ>Интересно какой тип игры?

Это шаровара. Игра трехмерная. Поинт в том, чтобы сделать быстро и красиво на скромных машинах. Еще писал http://community.livejournal.com/ru_programming/641889.html
Re: Физическая память и файл подкачки в Windows.
От: CreatorCray  
Дата: 06.11.06 21:42
Оценка:
Здравствуйте, black_wolf_ltd, Вы писали:

__>1. Определить, находятся ли данные в памяти или на диске ?

__>2. Запретить программе использовать системный своп ?
__>3. Запретить винде выгружать определенные данные в своп ?
__>4. Указать резервировать память только в физической памяти ?
__>Другими словами, _очень_ хочется иметь полный контроль за тем, что будет происходить и хочется понять :
Зачем это надо?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Физическая память и файл подкачки в Windows.
От: Pavel Dvorkin Россия  
Дата: 07.11.06 04:38
Оценка:
Здравствуйте, black_wolf_ltd, Вы писали:

__>4. Указать резервировать память только в физической памяти ?



Да. Выделять память по VirtualAlloc(MEM_PHYSICAL) и далее см. MSDN. Но потребуется привилегия SE_LOCK_MEMORY_NAME, которую обычно юзеру не дают
With best regards
Pavel Dvorkin
Re[2]: Физическая память и файл подкачки в Windows.
От: Sergey Россия  
Дата: 07.11.06 15:09
Оценка:
> __>4. Указать резервировать память только в физической памяти ?
>
>
> Да. Выделять память по VirtualAlloc(MEM_PHYSICAL) и далее см. MSDN. Но потребуется привилегия SE_LOCK_MEMORY_NAME, которую обычно юзеру не дают

Если "см. MSDN", то выяснится, что "This value is solely for use with Address Windowing Extensions (AWE) memory".
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[3]: Физическая память и файл подкачки в Windows.
От: Pavel Dvorkin Россия  
Дата: 09.11.06 03:43
Оценка:
Здравствуйте, Sergey, Вы писали:


>> Да. Выделять память по VirtualAlloc(MEM_PHYSICAL) и далее см. MSDN. Но потребуется привилегия SE_LOCK_MEMORY_NAME, которую обычно юзеру не дают


S>Если "см. MSDN", то выяснится, что "This value is solely for use with Address Windowing Extensions (AWE) memory".


И что ? У тебя Pentium-1, у которого нет PAE ?
With best regards
Pavel Dvorkin
Re: Физическая память и файл подкачки в Windows.
От: Аноним  
Дата: 13.11.06 08:11
Оценка:
SetProcessWorkingSetSize заставит винду не отсвапливать память процесса пока ее размер меньше указанного значения (если хватит доступной физ памяти)
Re: Физическая память и файл подкачки в Windows.
От: Аноним  
Дата: 13.11.06 08:23
Оценка:
Здравствуйте, black_wolf_ltd, Вы писали:

__>Вобщем так. Хочу сделать следующее.


__>При загрузке игра определяет размер доступной _физической_ памяти, после чего выделяет ее значительный процент себе по каким-то разумным кусочкам пока эти разумные кусочки можно выделять в физической памяти.


__>Далее игра создает собственный своп и использует его, не трогая системный.


__>Под винду.


__>Существуют ли способы


__>1. Определить, находятся ли данные в памяти или на диске ?

__>2. Запретить программе использовать системный своп ?
__>3. Запретить винде выгружать определенные данные в своп ?
__>4. Указать резервировать память только в физической памяти ?

__>Другими словами, _очень_ хочется иметь полный контроль за тем, что будет происходить и хочется понять :


__>1. А это вообще можно сделать ?

все о чем ты писал возможно

__>2. Куда копать ?

в DDK
Re[2]: Физическая память и файл подкачки в Windows.
От: Сергей Мухин Россия  
Дата: 13.11.06 10:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>SetProcessWorkingSetSize заставит винду не отсвапливать память процесса пока ее размер меньше указанного значения (если хватит доступной физ памяти)


это не обязон, а пожелание системе
---
С уважением,
Сергей Мухин
Re: Физическая память и файл подкачки в Windows.
От: TarasCo  
Дата: 14.11.06 13:51
Оценка:
Здравствуйте, black_wolf_ltd, Вы писали:

__>1. Определить, находятся ли данные в памяти или на диске ?

__>2. Запретить программе использовать системный своп ?
__>3. Запретить винде выгружать определенные данные в своп ?
__>4. Указать резервировать память только в физической памяти ?

В полном объеме Ваши пожелания доступны только ядру ОС. С некоторыми ограничениями — драйверам режима ядра.
Да пребудет с тобою сила
Re: Физическая память и файл подкачки в Windows.
От: NightBlade Россия  
Дата: 14.11.06 15:15
Оценка: +1
__>При загрузке игра определяет размер доступной _физической_ памяти, после чего выделяет ее значительный процент себе по каким-то разумным кусочкам пока эти разумные кусочки можно выделять в физической памяти.

собственно говоря здесь и есть ответ на вопрос. выделяйте память так, чтобы другим задачам и системе оставалось столько, чтобы не свопилось. даже если выделить зафиксированный в физической памяти буфер, а у системе возникнет нехватка памяти, то она начнет свопить память других приложений, которую уж точно контролировать невозможно. ТОРМОЗА БУДУТ ВОЗНИКАТЬ ПРИ НЕДОСТАТКЕ ПАМЯТИ В ЛЮБОМ СЛУЧАЕ
Все вопросы на nightblade@inbox.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.