Jump to content

Лагает Долина Сфер


Recommended Posts

3 часа назад, Serero сказал:

Код вообще не знает о его существовании. Программа просто просит сисиему выделить ей память и та выделяет. Где она ее выделяет программа знать не может.

Что такое "утечка памяти" в курсе? Код запрашивает выделить ему память, потом опять запрашивает выделить ему память, потом опять запрашивает выделить ему память. Но при этом не отменяет ранее запрошенные и более не требуемые ему объемы памяти. Система же видит, что к этим блокам памяти не было обращения определенное время и потому перемещает эти блоки из оперативной памяти в файл подкачки до востребования (вдруг они все же понадобятся программе). Вот так и пишутся игры, которые не могут без файла подкачки, при этом сами от силы используют 10-20% оперативной памяти.

Link to comment
Share on other sites

1 час назад, MrJohnnyFive сказал:

Что такое "утечка памяти" в курсе

Это когда забываешь освободить выделенную память. Но к запуску современных игр на 4 гигах оперативы это уже давно не относится.

4bd47c61b701bd20fb087e6f4aa58dfb-full.pn

Вот столько игра занимает сразу после прогрузки в долину сфер. Настройки максимальные, fps стабильный. Если там и есть утечки памяти, то они не критичные.

Link to comment
Share on other sites

WF_pagefile.jpg

Вот более точные данные сколько игра занимает при загрузке в долину Сфер (режим "соло"). Общее потребление памяти переваливает за 8Гб. Но не дотягивает до  имеющихся у меня 16Гб, а все равно требует файл подкачки. И это я только из лифта вышел.

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

После разломов тернии всё было хорошо, потом вышло несколько микропатчей и снова всё залагало. Специально чтоль сломали?

То что софт не знает о файле подкачки это реально бред. На практике неоднократно доказано что система может прекрасно работать без свопа, а вот некоторый софт без него не работает.

Link to comment
Share on other sites

5 часов назад, CORDAZEUS сказал:

То что софт не знает о файле подкачки это реально бред.

А что, он знает, какую именно память ему выделяет система? 

5 часов назад, CORDAZEUS сказал:

На практике неоднократно доказано что система может прекрасно работать без свопа

При достаточно больших количествах ОЗУ и не иначе.

5 часов назад, CORDAZEUS сказал:

а вот некоторый софт без него не работает.

Примеры?
(некоторый софт может сжирать неприличные объёмы оперативной памяти)

Link to comment
Share on other sites

3 часа назад, White_Lugaru сказал:

Примеры?
(некоторый софт может сжирать неприличные объёмы оперативной памяти)

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

Кроме фотошопа были еще программы которые или не желали запускать без файла подкачки (указывая при этом на его отсутствие) или предупреждали о низкой производительности из-за отсутствия файла подкачки. И тут дело не в том, что программа сама решает какую память запрашивать, а в том, что есть банальный запрос на проверку того или иного ресурса и при его отсутствии реагировать тем или иным способом (так сказать костыли от разработчиков).

И еще больше оффтопа. В далеком мохнатом году проводил опыты с игрой Цивилизация. Ставил в комп 2ГБ памяти и отключал своп, потом запускал Цивилизацию. После 5-10 минут игра тупо вываливалась из-за нехватки памяти. Затем ставил в комп 512Мб памяти и задавал своп в 1Гб (т.е. общий объем памяти заведомо меньший чем в первом варианте) и игра прекрасно работала без вылетов часами, пока сам ее не закроешь.

Link to comment
Share on other sites

17 hours ago, White_Lugaru said:

А что, он знает, какую именно память ему выделяет система? 

При достаточно больших количествах ОЗУ и не иначе.

А разве программист в коде программы не может ему указать какие адреса или тип физический/виртуальный памяти использовать?

Ну то что своп можно отключать только при приличном объеме озу это очевидно. 

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

Link to comment
Share on other sites

5 часов назад, CORDAZEUS сказал:

А разве программист в коде программы не может ему указать какие адреса или тип физический/виртуальный памяти использовать?

Нет. Программист просто пишет, что тут надо выделить сколько то памяти. Он сам даже не знает сколько просить, обычно нужный объем вычисляется по формуле на основе того с чем программа работает. Ты ведь можешь скриншот из пеинта открыть, а можешь и 8к видео в 60fps. Далее происходит запрос. Систтема возвращает адрес начала выделенного фрагмента памяти. Т.к. адресовать можно несколько терабайт, то и адрес может находится за пределеами твоих 4,8,16... гигов. При этом находясь в них. Когда идет обращение к памяти, система сама ее подгружает в оперативку. Когда долго нет обращений, то выгружает. Программа не может знать где находятся данные в конкретный момент, это от нее скрыто. Сделано это специально что бы программисты не заморачивались и не оптимизировали программу отдельно под 4, 8, 16 и более гигабайт. Ты можешь запросить сколько угодно памяти на любой системе и ты ее получишь, это упрощает разработку.

Link to comment
Share on other sites

1 hour ago, Serero said:

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

Не думаю что вы компетентны в данном вопросе. Даже поверхностное изучение данного вопроса показывает, что существует куча инструментов и вариантов по управлению/использованию памяти при программировании. Вы просто здесь флудите и вводите в заблуждение наивных пользователей. На месте модераторов я бы таких пользователей банил перманентно.

Link to comment
Share on other sites

1 час назад, CORDAZEUS сказал:

Не думаю что вы компетентны в данном вопросе. Даже поверхностное изучение данного вопроса показывает, что существует куча инструментов и вариантов по управлению/использованию памяти при программировании. Вы просто здесь флудите и вводите в заблуждение наивных пользователей. На месте модераторов я бы таких пользователей банил перманентно.

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

Link to comment
Share on other sites

7 часов назад, CORDAZEUS сказал:

Не думаю что вы компетентны в данном вопросе.

Вот это очень мудро. Не думайте. О моей компетенции пусть думает мой зарплатодатель.

7 часов назад, CORDAZEUS сказал:

 Даже поверхностное изучение данного вопроса показывает

После поверхностного изучения вопроса появляются сторонники теории плоской Земли. Если нашли несоответствие с моими словами, то дайте ссылку или процетируйте. Это же так легко Ctrl+С Ctrl+V

7 часов назад, CORDAZEUS сказал:

существует куча инструментов и вариантов по управлению/использованию памяти при программировании

Существует много всего. А еще существуют паттерны разработки, стандарты, рекомендации разработчиков ОС и многое многое другое. От того что в интернете что то написано мои слова не стали менее авторитетны, а ваши более. В интернете вообще много чего найти можно.

Например вот: https://habr.com/ru/post/245443/

Link to comment
Share on other sites

В 26.03.2019 в 13:01, MrJohnnyFive сказал:

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

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

Link to comment
Share on other sites

10 часов назад, White_Lugaru сказал:

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

Абзацем ниже мной именно это и было написано: "И тут дело не в том, что программа сама решает какую память запрашивать, а в том, что есть банальный запрос на проверку того или иного ресурса и при его отсутствии реагировать тем или иным способом (так сказать костыли от разработчиков)."

Link to comment
Share on other sites

6 часов назад, MrJohnnyFive сказал:

Абзацем ниже мной именно это и было написано: "И тут дело не в том, что программа сама решает какую память запрашивать, а в том, что есть банальный запрос на проверку того или иного ресурса и при его отсутствии реагировать тем или иным способом (так сказать костыли от разработчиков)."

Не спорю, что было и не претендую на открытие Америки. Посыл больше был к тому, что якобы программа знает, какую именно память использует, в смысле к тому, что это не так. Надо было поставить туда цитату @CORDAZEUS, каюсь.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...