![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выделение физической памяти [D7, WinXP]
Ishmael © (2005-09-25 23:30:00)Надо выделить область ФИЗИЧЕСКОЙ памяти с конкретного адреса и конкретного размера, причём так, чтобы ни одно приложение (и система) более не имело доступа к этой области. Пример (может и неудачный, но смысл такой): выделил я себе 384 из 512Mb оперативки - комп тормозит так же, будто у него вовсе 128.
Каким образом это можно реализовать?
Игорь Шевченко (2005-09-27 18:47:00) [1]
> Дошёл до AllocateUserPhysicalPages, но прототипов в Delphi
> нет
http://www.delphi-jedi.org
> Кажется, самый простой случай, это VirtualAlloc с флагом
> MEM_PHYSIC, но его не ни в одном дельфийском хидере, а численное
> значение не упоминается и в одном доступном мне источнике
const MEM_PHYSICAL = $400000;
Ishmael (2005-09-27 18:45:00) [2]Дело не в количестве памяти, а в необходимости ещё выделения и залочивания.
VirtalAlloc - выделяет. Хорошо выделят: GlobalAlloc её не перешибает, но (!!!) два экземпляра одного приложения с VirtualAlloc прекрасно уживаются, только своп растёт. SetProcessWorkingSetSize(Ex) - знаю, без неё на основе VirtalAlloc проги не работают. Дошёл до AllocateUserPhysicalPages, но прототипов в Delphi нет. Кажется, самый простой случай, это VirtualAlloc с флагом MEM_PHYSIC, но его не ни в одном дельфийском хидере, а численное значение не упоминается и в одном доступном мне источнике. :(
miek (2005-09-26 11:22:00) [3]Выдели сколько надо памяти и залочь ее. По идее, все должно лежать в физ.памяти.
alpet (2005-09-26 10:45:00) [4]Тебе нужно прикупить достаточно памяти. Если обращения к выделенному региону памяти (хоть 1Гб) будут достаточно частыми, он не будет выгружаться на диск. В дополнение рекомендую ознакомится с функцией SetProcessWorkingSetSize(Ex). А так требования у тебя поставлены практически несовместимые с системой, такое разве что в DOS можно реализовать, но в этом случае Delphi тебе не помощник.
Ishmael (2005-09-26 08:42:00) [5]По сравнению с WinAPI NativeAPI я вообще не знаю. Что именно в нём использовать?
Eraser (2005-09-26 00:39:00) [6]
> Ishmael (25.09.05 23:30)
Без драйвера ядра тут никак, да и с драйвером конкретные адреса может оказаться получить проблематично.
Драйвер ядра надо писать на MS VC++ и MS DDK, а не на делфи.