Сколько всё-таки оперативки использует моя система?
а cpu-z показывает сколько физически установлено памяти.
Можно заставить её использовать всё?
а если хочется подробнее или извращений с PAE - проследуйте в поиск
Спасибо. А по каким словам искать?
/3GB только возможно немножко улучшит ситуацию.
Придётся менять ось всё равно, так что много вариантов.
[боянище]/3GB к физической памяти, в отличии от PAE, абсолютно никакого отношения не имеет[/боян]
/3GB к физической памяти, в отличии от PAE, абсолютно никакого отношения не имеетотношение это к физической памяти скорее имеет, чем нет, ибо влияет на распределение именно физической памяти, заставляя ядро умерить свои нескромные дефолтные аппетиты
заставляя ядро умерить свои нескромные дефолтные аппетитыВ размре виртуальной памяти, которую оно под себя выделяет.
ибо влияет на распределение именно физической памятиага, в системах с PAE (включённом не только ради работы DEP этот ключик уменьшает максимальный объём физической памяти до 16гб (в большинстве случаев). Думаю, рядовой пользователь в ближайшие год-два это влияние может игнорировать.
а, в системах с PAE (включённом не только ради работы DEP этот ключик уменьшает максимальный объём физической памяти до 16гб (в большинстве случаев). Думаю, рядовой пользователь в ближайшие год-два это влияние может игнорировать.Это не единственный и не главный эффект =)
В соответствующей статье про /3GB ничего больше не нашел. А вообще, вроде требуется пересобирать приложение с поддержкой больших адресов, так что польза от этого ключика только в некоторых приложениях будет.
Если же разным - то можно не пересобирать.
На йориковской ссылке в конце все нормально расписано.
Пересобирать - это если _одному_ процессу надо больше двух гигов.если двум (и более) процессам надо более 2х гигов _суммарно_, но каждый из них по отдельности использует в пике менее 2х гигов, то вообще никаких проблем, возиться с /3GB не нужно.
Если же разным - то можно не пересобирать.
если двум (и более) процессам надо более 2х гигов _суммарно_, но каждый из них по отдельности использует в пике менее 2х гигов, то вообще никаких проблем, возиться с /3GB не нужно.к сожалению нет
прочитай внимательно хотя бы йориковскую ссылку
прочитай внимательно хотя бы йориковскую ссылкуЕдинственное упоминание ключа /3GB в ней - в этом абзаце:
Замечание. Время от времени можно увидеть совет по увеличению памяти, доступной системе: добавить в файл boot.ini параметр /3GB. На самом деле этот совет, как говорится, не из той оперы. Этот параметр обеспечивает перераспределение виртуального адресного пространства приложений между ними и системой, но никак не влияет на работу с физической памятью.Что я пропустил?
Можно еще прочитать http://msdn.microsoft.com/en-us/library/ms791558.aspx
Вообще, в контексте всего вышесказанного в статье, должно быть понятно, каким образом это влияет на кол-во доступной юзерспейсу памяти.При чём тут память процесса, (в том числе, доступная юзерспейсу) к физической памяти? Большая часть первой может быть вообще где-то в pagefile-е лежать, а вторая - это адресное пространство на шине процессора, которому соответствует RAM, соответственно, сопоставление первой и второй в существенной степени зависит от настроек страниц памяти для защищённого режима процессора, которые управляются ядром ОС... Или я что-то неправильно понял?
Можно еще прочитать http://msdn.microsoft.com/en-us/library/ms791558.aspxименно это я и читал перед тем, как утверждать, что для обычного пользователя влияние этого параметра на работу с физической памятью минимально.
У Висты/Хп размер адресного пространтсва после последнего этапа трансляции - 4Гб.
Куда мапятся эти 4Гб показано на скриншотах по ссылке. /3GB несколько меняет это.
Единственное, чего я не понимаю, это необходимость перекомпиливать прогу, чтобы она смогла захавать больше 2гб при включенном /3GB.
При этом с выключенным PAE эта же система может иметь доступ не более чем к 4GiB физической оперативной памяти (на самом деле меньше, т.к. на часть этой памяти мапаются адресные пространства устройств) по той причине, что после трансляции получается 32-битный адрес.
Со включенным PAE эта же система может иметь доступ уже к 64GiB физической памяти (на самом деле меньше, по ранее указанной причине т.к. после трансляции получается 36-битный адрес.
Куда мапать устройства в пространство физической памяти решает система, а потому в случае включенного PAE может замапать их, например, с адреса 0x200000000 (после 8GiB) и таким образом получить доступ ко всей реальной физической памяти.
Далее. В 32-битной системе у каждого процесса есть 4GiB виртуальной памяти, которую система может замапать на любой из доступных физических адресов (которых с включенным PAE 64GiB). При этом Windows по умолчанию резервирует все виртуальные адреса выше 2GiB для себя, оставляя программе 2GiB виртуальных адресов. С ключом /3GB программы получают 3GiB виртуальных адресов.
Зачем нужна перекомпиляция? (Внимание! Дальше идут исключительно мои предположения).
Когда системное пространство виртуальных адресов начинается с 2GiB, все системные виртуальные адреса в знаковых числах - отрицательные, а пользовательские - положительные. Вероятно, компиляторы пользуются этим фактом для каких-то оптимизаций, которые невозможны когда пользовательские адреса могут быть отрицательными числами при представлении в виде знаковых 32-битных целых.
[pollstart]
[polltitle=+Как вы считаете, на какие адреса влияет ключ /3GB в Win32?]
[polloption=На виртуальные адреса процессов (изменение максимального объёма адресуемой памяти - побочный эффект).]
[polloption=На физические адреса/распределение соответствий при трансляции из виртуальных адресов в физические.]
[polloption=На пч0л.]
[pollstop]
Зачем нужна перекомпиляция? (Внимание! Дальше идут исключительно мои предположения).Пейсатель-фантаст?
Когда системное пространство виртуальных адресов начинается с 2GiB, все системные виртуальные адреса в знаковых числах - отрицательные, а пользовательские - положительные. Вероятно, компиляторы пользуются этим фактом для каких-то оптимизаций, которые невозможны когда пользовательские адреса могут быть отрицательными числами при представлении в виде знаковых 32-битных целых.
... Но как я понимаю, моя использует система всё равно тоько 3...
[polloption=На виртуальные адреса процессов (изменение максимального объёма адресуемой памяти - побочный эффект).]да какая разница, если и те и эти ограничены 4гигами?
[polloption=На физические адреса/распределение соответствий при трансляции из виртуальных адресов в физические.]
первые - просто потому, что они 32битные, вторые - просто потому, что пае на несерверных ос не работает?
//то есть разница конечно есть, но мой первоначальный поинт все равно в силе в обоих случаях
Возможно появление опциии линкера (прочёл, опция линкера, а не компилятора => оптимизации отпадают) связано с тем, что старые программы использовали знаковые целые числа, например, при проверке выхода за пределы массива примерно так (код наглядный):
if (&arr[i] < (int)arr) throw IndexOutOfRange;
вот снимок с моего компа. В отличие от снимка в висте, который приведён в статье по ссылке, на моём винда видит 4ГБ.Мой чипсет поддерживает 2ГБ. 512МБ напаяно, один доступный слот. Если воткнуть 2ГБ - биос видит только 2ГБ, виста на твоём скриншоте - 2.5, использует только 2.
... Но как я понимаю, моя использует система всё равно тоько 3...Мелкомягкие маркетологи настучали по мозгам программистам и те выпустили патч, чтобы это окошко отображало не доступную системе память, а всю установленную.
старые программы использовали знаковые целые числа, например, при проверке выхода за пределы массива примерно такСтарые, хм. Что это еще за «старые» программы, да добоебов полно, ты думаешь все «новые» программы написаны правильно?
Старые, хм. Что это еще за «старые» программы, да добоебов полно, ты думаешь все «новые» программы написаны правильно?Старые - это программы, написанные во времена, когда не предполагалось вообще, что программа затребует больше 2ГБ.
Короче ладно, я в теме разговора не очень хорошо разбираюсь, просто был интересен ответ на вопрос, а твои сообщения показались немного нелогичными.
По частоте появления тредов по данной теме можно выставлять точное время.
Оставить комментарий
Petrovich_on_T3
Ноутбук Acer Aspire 5920GWin Vista Home Premium (кажется, 32bit)
RAM: 2x2GB Kingston DDR2-6400
Видеокарта дискретная GeForce 8600M GT 256MB.
Самая свежая версия CPU-Z (1.49 запущенная из-под админа показывает, что объём оперативки 4GB, а та же прога, запущенная от имени обычного пользователя, показывает только 3GB.
Диспетчер задач показывает 3GB даже под админом.
В чём причина разницы?..
Сколько оперативки всё же использует система?
Может, это связано с памятью, которая может передаваться видеокарте? Неужели видюха к своим 256 добирает ещё 1гиг системной памяти?
Подскажите, пожалуйста, кто знает. Заранее спасибо.