Студия Archetype Entertainment представила первый трейлер Exodus - научно-фантастической РПГ в духе Mass Effect. Её разработкой занимается команда во главе с ветераном BioWare Джеймсом Оленом. По...
Также изменился и путь к башне. Теперь его охраняют големы, которые могут активно взаимодействовать с окружающей средой, делая прохождение более сложным. Стоит отметить, что даже затопленные руины...
Тому кто знаком с диаблоидами, не стоит представлять данную игру. Первая часть была невероятно популярной и по праву носила звание лучшей ARPG среди Hack&Slash-игр. И вот вчера, 6 декабря...
Новички, пришло время принять реальность и смириться с судьбой. Чувствуйте себя как дома в Долине Рудников, месте, полном опасностей, преступлений и жадности. Вам предстоит оставаться здесь очень...
Зарезервированная память не жрёт ресурсы, пока приложение её явно не запросит (мол, выделите-ка мне памяти вон по тому зарезервированному адресу, а не абы какую).
Это так не работает. Адресное пространство приложения ничего общего с адресным пространством, доступным ос, не имеет, ха исключением очень особых случаев, к которым пользовательские приложения не относятся. Для ос это именно что "абы какая память", ей все равно из какой области ей выделять память для приложения, а приложению все равно из какой области ей память дали, у приложения собственная независимая от ос адресация.
Я с этим не согласен. Зарезервированную память нельзя использовать из приложения, пока явно у ОСи её не запросить.
Зарезервированная память не используется (не жрёт ресурсы ПК, но занимает весьма ограниченную для Готики виртуальную память), просто виртуальные адреса резервируются. Обычные запросы памяти из приложения никогда не вернут блоки памяти с зарезервированными виртуальными адресами.
Резервирование обычно делается для алгоритмов, которые требуют чтобы данные находились по смежным виртуальным адресам, но самих данных пока нету, поэтому зачем сразу грузить ПК.
Я с этим не согласен. Зарезервированную память нельзя использовать из приложения, пока явно у ОСи её не запросить.
Зарезервированная память не используется (не жрёт ресурсы ПК, но занимает весьма ограниченную для Готики виртуальную память), просто виртуальные адреса резервируются. Обычные запросы памяти из приложения никогда не вернут блоки памяти с зарезервированными виртуальными адресами.
Резервирование обычно делается для алгоритмов, которые требуют чтобы данные находились по смежным виртуальным адресам, но самих данных пока нету, поэтому зачем сразу грузить ПК.
Что значит по-твоему "не использует ресурсы пк"? Для ос зарезервированная приложением память недоступна для предоставления другим приложениям (в штатной ситуации, по крайней мере), а значит использует ресурсы пк.
byte* someArray = new byte[65536];
// эта память жрёт ресурсы ПК, даже если программист хер забил на этот массив после создания
LPVOID ptr = VirtualAlloc(NULL, 65536, MEM_RESERVE, PAGE_READWRITE);
// этот вызов не жрёт ресурсы ПК, но вот такой указатель, гарантированно не будет равен ptr
LPVOID anotherPtr = new byte[655536];
assert(anotherPtr != ptr);
byte* someArray = new byte[65536];
// эта память жрёт ресурсы ПК, даже если программист хер забил на этот массив после создания
LPVOID ptr = VirtualAlloc(NULL, 65536, MEM_RESERVE, PAGE_READWRITE);
// этот вызов не жрёт ресурсы ПК, но вот такой указатель, гарантированно не будет равен ptr
LPVOID anotherPtr = new byte[655536];
assert(anotherPtr != ptr);
А теперь по человечески: первый случай сразу транслируется в физическую память, а второй только когда приложение реально начнет использовать зарезервированное. Это не резерв памяти, это резерв адресов.
Извини, я не кодер, я одмен, у меня виртуальная память это объем, а не резиновое адресное пространство. И объем этот равен объему ram + swap, и больше быть не может. Соответственно резерв памяти = резерв объема. А с адресами отдельная песня, конечно.