Назад | Перейти на главную страницу

Минимальные требования кажутся слишком большими для 32-битного приложения

Я разработчик, использую языки высокого уровня, такие как C ++ и .NET.

Одно из поддерживаемых мной внешних приложений скоро будет обновлено. Я получил следующие минимальные требования для обновления:

8 Core CPU - to support updating 10M records in a few hours
16G RAM - to allow project databases to be cached in memory 
500G disk  - to support project databases and backups

Это 32-битное приложение. Я думаю, это означает, что он может использовать только 4 ГБ оперативной памяти. Это всегда правильно? Существуют ли какие-либо ограничения для 32-битного приложения:

Clock speed
Number of cores in processor
Hard disk space

Нет конкретного ограничения на то, сколько оперативной памяти может использовать 32-разрядный процесс. 32-разрядный процесс может напрямую отображать только 4 ГБ виртуальной памяти за раз, но это ограничение виртуальной памяти, а не ограничение ОЗУ.

Например, 32-разрядный процесс на 64-разрядной машине может получить доступ к файлу размером 32 ГБ, который полностью кэширован в ОЗУ, таким образом, чтение и запись из 32 ГБ ОЗУ. Это самый простой для понимания пример, есть много других способов. Ссылка на кеширование в «требованиях», кажется, предполагает, что они имеют в виду нечто подобное.

4 ГБ - это виртуальный лимит. 2 ГБ - это предел физической памяти для 32-разрядных процессов, если приложение не связано с флагом «LARGEADDRESSAWARE». Это устанавливает бит 0x0020 в разделе характеристик заголовка PE. Но приложение также может запускать несколько процессов в ходе нормальной работы, каждый из которых может потреблять собственную память, поэтому я бы не стал предполагать, что оно использует всю необходимую память в одном процессе.

Поставщик / поставщик приложения на самом деле говорит вам, что если вы поместите приложение на однопроцессорную виртуальную машину с 4 ГБ памяти, оно не будет работать хорошо. Если вы вернетесь к ним и спросите, почему, они, вероятно, повторно отправят вам предыдущее письмо с требованиями.