LINUX.ORG.RU
решено ФорумTalks

Сколько памяти может 32bit ПО в 64bit ОС

 


0

1

употребить?

Понятно что вроде как 2-4 гига (по разным источникам, но не суть важно), но в win (в линуксе такой некрофилии нет) до сих пор уйма толстых и жручих программ которые упорно сидят на 32 битах и вроде как спокойны.

Мне вот интересно стало, может у них там какойто особый костыль?

ps. Подсказали: https://ru.wikipedia.org/wiki/Address_Windowing_Extensions

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

Мн вот интересно стало, может у них там какойто особый костыль?

Часто жручий софт можно разделить на несколько процессов, что и делают в большинстве случаев. У каждого процесса будет адресоваться в районе 3 гб, но в совокупности получится сильно больше. Плюс такая схема повышает стабильность, т.к. любой отвалившийся модуль не ведёт к краху всей софтины.

Sadler ★★★
()
Последнее исправление: Sadler (всего исправлений: 2)
Ответ на: комментарий от dmxrand

1 террабайт легко

Это каким же образом? PAE даёт только 64 Гб, а никаких переключений страниц физической памяти в i386-архитектуре вроде не предусмотрено.

Понятно, можно в ОС сделать системный вызов и API, через который станет возможно маппить на часть 32-битных адресов, доступных программе, любые участки из 64-битного пространства и тогда 32-битной программе будет доступно столько же памяти, сколько и 64-битной. Но такой штуки вроде никто не делал.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от Deathstalker

да, в маздае раньше было именно так. правда, я вроде читала, что в последних версиях они-таки перестали отжирать этот гигабайт.

Iron_Bug ★★★★★
()

а с чего софту переходить на 64 бита, если 32 бит хватает? на так много софта, которому нужно больше 4Gb рамы. обычно это базы данных. и то не всякие, а довольно жирные, где слишком дофига записей и индексы надо в памяти держать.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

под виндой это всякие фото и видео шопы, кады, игрушки, тысячи их

бд - это удел линукса но тут все какраз таки все просто

Deleted
()
Ответ на: комментарий от Deleted

фотошопы чертзнает сколько лет 64бита
равконвертерам, я думаю, некритично
аудиоредакторы - ну сонар новый у меня 64
видео - скорее всего, тоже уже переписали

имя, сестра, имя!

ist76 ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Это каким же образом? PAE даёт только 64 Гб, а никаких переключений страниц физической памяти в i386-архитектуре вроде не предусмотрено.

Вы каким методом выделяете память malloc?

dmxrand
()
Ответ на: комментарий от Deleted

его долго переносили
большие - они неповоротливые

и вроде даже, первым перенесли на какось (может путаю?)
но нынче-то 2017 (с новым годом, к кстати)
кому действительно нужна память - уже все переписались давно

ist76 ★★★★★
()
Ответ на: комментарий от Deleted

дык, зачем тебе в игрушке 4 гига памяти? там делов-то - отобразить сцену. фактуры, карты, плюс музыка для стриминга - это всё 4 гига ну никак на займёт.

кады - те да, могут жрать много. но кады на 64 бита уж давно перебрались.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Ну у людей руки из..... ростут. Я вон говорю, что 32-х битный софт может получить 1 гиг памяти, а они не верят.

dmxrand
()
Ответ на: комментарий от ist76

нууу... нет предела кривизне рук! :)

а вообще, маппинг никто не отменял. мапируй свои текстуры из файла и система за тебя будет подгружать нужные регионы. если хочешь оптимизации - мапируй сам, вручную, с предварительной подгрузкой. но чтобы 4 гига за раз нужно было - «не верю!» (С).

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

дык, зачем тебе в игрушке 4 гига памяти? там делов-то - отобразить сцену. фактуры, карты, плюс музыка для стриминга - это всё 4 гига ну никак на займёт.

чтоб все уровни сразу загрузить, чтоб не прерывать геймплей на загрузку следующего с демонстрацией прогрессбара

Harald ★★★★★
()
Ответ на: комментарий от Harald

делай это в бэкграунде. кто мешает-то?

я в давние времена, когда ещё XP была, писала просмотр для файликов с изображениями размером в несколько десятков гигов. тогда это было просто нереально дофига. а файлики ещё были в довольно специфическом кастомном формате кодирования цветовых плоскостей и координат. и нужно было ползать по файлу, масштабировать, и т.д. и всё это работало на 32 битах влёт, без тормозов.

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous_incognito

никаких переключений страниц физической памяти в i386-архитектуре вроде не предусмотрено.

Чего там только не предусмотрено то.

Также существует расширение PSE-36, использующее 4 из неиспользуемых младших бит элемента каталога страниц в качестве старших бит физического адреса. Позволяет адресовать до 64 гигабайт ОЗУ без включения режима PAE,

https://ru.wikipedia.org/wiki/PSE

Или лучше здесь: https://en.wikipedia.org/wiki/PSE-36

Kuzz ★★★
()
Ответ на: комментарий от Harald

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Давно игрушки видели? Новые не только жрут по 8 гигов оперативки, так ещё и видеопамяти по 4+ гига мигом отжирают.

peregrine ★★★★★
()
Ответ на: комментарий от Iron_Bug

На самом деле нужно, т.к. чтение с жесткого диска не шибко быстрое, а ssd при условии, что одна игрушка может весить по 20 гигабайт обычному игруну будет шибко дорого.

peregrine ★★★★★
()
Ответ на: комментарий от Harald

Есть подозрения, что распакованные уровни весят много больше, чем 8 гигов.

peregrine ★★★★★
()
Ответ на: комментарий от Harald

не, пишется один раз и навсегда. макаки и так никогда не лезут в энджин. да и движки одни и те же для многих игр, по сути.

Iron_Bug ★★★★★
()
Ответ на: комментарий от peregrine

ну что ж, печально, если так. видео в таком объёме - это разве что если на HD телевизоре играть в полном разрешении :)

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Harald

зачем??? ни один разработчик в здравом уме не положит каждую мелкую текстуру в отдельный мелкий файлик. это безумие. и с точки зрения диска, и с точки зрения ФС.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

да, в маздае раньше было именно так. правда, я вроде читала, что в последних версиях они-таки перестали отжирать этот гигабайт.

В маздае всегда был сплит 2:2, а 3:1 - это только с использованием специальных опций /3GB или increaseuserva, при этом старые винды не могли использовать больше 16 гигов памяти при сплите 3:1.

bigbit ★★★★★
()
Ответ на: комментарий от peregrine

да всё равно не гигабайты же это. даже с буферизацией. плюс часть работы забирает видяха. а они сейчас мощные, с векторными операциями и т.д. так что с проца снимается большая часть нагрузки по обработке изображений.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Harald

ну... что я могу сказать? это уже макаки постарались. больше сегментации! больше нагрузки на ФС! больше файловых дескрипторов! больше трэша и угара. зато каждая текстурка в своём уникальном файлике. благодать же.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

отож :) зато архивацией и компрессией заморачиваться не надо

Harald ★★★★★
()
Ответ на: комментарий от Iron_Bug

нууу... нет предела кривизне рук! :)

Конееечно. Всё проклятая кривизна рук виновата. А вовсе не 4 и 8k текстуры, которые нужны, чтобы игрок упёршись носом в в кирпичную стенку не начинал немедленно ныть на весь интернет, что ему опять мыльцо подсунули.

atrus ★★★★★
()
Ответ на: комментарий от peregrine

и что? скины как-то концептуально отличаются от всех прочих ресурсов, которые можно сложить в один файл и запаковать?

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

дык, зачем тебе в игрушке 4 гига памяти? там делов-то - отобразить сцену. фактуры, карты, плюс музыка для стриминга - это всё 4 гига ну никак на займёт.

Расскажи подробнее. Сколько памяти нужно на сцену? Сколько на «фактуры»? Сколько на «карты»? Сколько на музыку?

Stil ★★★★★
()
Ответ на: комментарий от Iron_Bug

а вообще, маппинг никто не отменял. мапируй свои текстуры из файла и система за тебя будет подгружать нужные регионы. если хочешь оптимизации - мапируй сам, вручную, с предварительной подгрузкой. но чтобы 4 гига за раз нужно было - «не верю!» (С).

На GPU ты как свой маппинг передашь? А когда следующий кусок понадобится – снова диск -> кэш -> проц -> видео? На какой FPS рассчитываешь?

Stil ★★★★★
()
Ответ на: комментарий от Stil

а ты не на каждый запрос диск дёргай. ты же знаешь, какие структуры понадобятся в ближайшие 10 секунд. вот и подгружай их порциями. не нужно всё сразу в память загружать. я про аналогичную задачу (просмотр большого файла) выше писала. при малых затратах можно мапить и отрисовывать (с буферированием) объёмы данных, намного превосходящие память машины.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

а ты не на каждый запрос диск дёргай. ты же знаешь, какие структуры понадобятся в ближайшие 10 секунд. вот и подгружай их порциями. не нужно всё сразу в память загружать. я про аналогичную задачу (просмотр большого файла) выше писала. при малых затратах можно мапить и отрисовывать (с буферированием) объёмы данных, намного превосходящие память машины.

А если выбор изменился – старые ресурсы выгружать, а новые подгружать, да? А как часто это делать? 60 раз в секунду? 30 раз в секунду? Раз в секунду? Оценивать предсказания по нужным ресурсам, выгружать предположительно ненужные, дергать диск/кеш/проц/ГПУ для загрузки предположительно нужных... А ещё ресурсы, как правило, запакованы, поэтому нам понадобится некоторое окно по памяти и по времени на распаковку. Хорошие вещи говоришь, да. Знаешь, так даже уже делали. The Elder Scrolls 3: Morrowind. Поставь его на HDD (это важно) и побегай по миру.

Stil ★★★★★
()
Ответ на: комментарий от Iron_Bug

зависит от конкретики. но не больше гига единовременно на всё вместе. и то это с огромным запасом.

Ну распиши этот гиг.

Stil ★★★★★
()

4 гига в 64-х битной венде максимум для 32-х битной программы, если линковать с /LARGEADDRESSAWARE, без - 2. Но с этим - на винфак.

Под онтопиком 3.25 гига аддрессного пространства (или сколько там было). Но можно конечнр исхитряться и вгружать/выгружать кусками и городить костыли.

invy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.