MrJohnnyFive Posted March 24, 2019 Share Posted March 24, 2019 3 часа назад, Serero сказал: Код вообще не знает о его существовании. Программа просто просит сисиему выделить ей память и та выделяет. Где она ее выделяет программа знать не может. Что такое "утечка памяти" в курсе? Код запрашивает выделить ему память, потом опять запрашивает выделить ему память, потом опять запрашивает выделить ему память. Но при этом не отменяет ранее запрошенные и более не требуемые ему объемы памяти. Система же видит, что к этим блокам памяти не было обращения определенное время и потому перемещает эти блоки из оперативной памяти в файл подкачки до востребования (вдруг они все же понадобятся программе). Вот так и пишутся игры, которые не могут без файла подкачки, при этом сами от силы используют 10-20% оперативной памяти. Link to comment Share on other sites More sharing options...
Serero Posted March 24, 2019 Share Posted March 24, 2019 1 час назад, MrJohnnyFive сказал: Что такое "утечка памяти" в курсе Это когда забываешь освободить выделенную память. Но к запуску современных игр на 4 гигах оперативы это уже давно не относится. Вот столько игра занимает сразу после прогрузки в долину сфер. Настройки максимальные, fps стабильный. Если там и есть утечки памяти, то они не критичные. Link to comment Share on other sites More sharing options...
MrJohnnyFive Posted March 24, 2019 Share Posted March 24, 2019 Вот более точные данные сколько игра занимает при загрузке в долину Сфер (режим "соло"). Общее потребление памяти переваливает за 8Гб. Но не дотягивает до имеющихся у меня 16Гб, а все равно требует файл подкачки. И это я только из лифта вышел. Link to comment Share on other sites More sharing options...
Danayam Posted March 25, 2019 Share Posted March 25, 2019 перенос игры на ссд решает проблем лагов из-за подгрузок в долине практически полностью, 8гб оперативы, видео с 2гб, всё играется нормально. Link to comment Share on other sites More sharing options...
CORDAZEUS Posted March 26, 2019 Share Posted March 26, 2019 После разломов тернии всё было хорошо, потом вышло несколько микропатчей и снова всё залагало. Специально чтоль сломали? То что софт не знает о файле подкачки это реально бред. На практике неоднократно доказано что система может прекрасно работать без свопа, а вот некоторый софт без него не работает. Link to comment Share on other sites More sharing options...
White_Lugaru Posted March 26, 2019 Share Posted March 26, 2019 5 часов назад, CORDAZEUS сказал: То что софт не знает о файле подкачки это реально бред. А что, он знает, какую именно память ему выделяет система? 5 часов назад, CORDAZEUS сказал: На практике неоднократно доказано что система может прекрасно работать без свопа При достаточно больших количествах ОЗУ и не иначе. 5 часов назад, CORDAZEUS сказал: а вот некоторый софт без него не работает. Примеры? (некоторый софт может сжирать неприличные объёмы оперативной памяти) Link to comment Share on other sites More sharing options...
MrJohnnyFive Posted March 26, 2019 Share Posted March 26, 2019 3 часа назад, White_Lugaru сказал: Примеры? (некоторый софт может сжирать неприличные объёмы оперативной памяти) Фотошоп. Даже при 64 Гб оперативки он не запустится без свопа, так и будет орать, что нет файла подкачки и вываливаться. По крайней мере так было в версиях до какого-то года, последнее время я перестал пользоваться фотошопом и не знаю как в более свежих версиях с этой проверкой. Кроме фотошопа были еще программы которые или не желали запускать без файла подкачки (указывая при этом на его отсутствие) или предупреждали о низкой производительности из-за отсутствия файла подкачки. И тут дело не в том, что программа сама решает какую память запрашивать, а в том, что есть банальный запрос на проверку того или иного ресурса и при его отсутствии реагировать тем или иным способом (так сказать костыли от разработчиков). И еще больше оффтопа. В далеком мохнатом году проводил опыты с игрой Цивилизация. Ставил в комп 2ГБ памяти и отключал своп, потом запускал Цивилизацию. После 5-10 минут игра тупо вываливалась из-за нехватки памяти. Затем ставил в комп 512Мб памяти и задавал своп в 1Гб (т.е. общий объем памяти заведомо меньший чем в первом варианте) и игра прекрасно работала без вылетов часами, пока сам ее не закроешь. Link to comment Share on other sites More sharing options...
CORDAZEUS Posted March 27, 2019 Share Posted March 27, 2019 17 hours ago, White_Lugaru said: А что, он знает, какую именно память ему выделяет система? При достаточно больших количествах ОЗУ и не иначе. А разве программист в коде программы не может ему указать какие адреса или тип физический/виртуальный памяти использовать? Ну то что своп можно отключать только при приличном объеме озу это очевидно. За софт и своп выше уже примеры привел коллега. В тырнете полно обсуждений про своп с примерами отличной работы без него и проблем с некоторым софтом при его отсутствии. Все зависит от разрабов которые прописывают в коде какой тип памяти нужно использовать для работы их программы. Link to comment Share on other sites More sharing options...
Serero Posted March 27, 2019 Share Posted March 27, 2019 5 часов назад, CORDAZEUS сказал: А разве программист в коде программы не может ему указать какие адреса или тип физический/виртуальный памяти использовать? Нет. Программист просто пишет, что тут надо выделить сколько то памяти. Он сам даже не знает сколько просить, обычно нужный объем вычисляется по формуле на основе того с чем программа работает. Ты ведь можешь скриншот из пеинта открыть, а можешь и 8к видео в 60fps. Далее происходит запрос. Систтема возвращает адрес начала выделенного фрагмента памяти. Т.к. адресовать можно несколько терабайт, то и адрес может находится за пределеами твоих 4,8,16... гигов. При этом находясь в них. Когда идет обращение к памяти, система сама ее подгружает в оперативку. Когда долго нет обращений, то выгружает. Программа не может знать где находятся данные в конкретный момент, это от нее скрыто. Сделано это специально что бы программисты не заморачивались и не оптимизировали программу отдельно под 4, 8, 16 и более гигабайт. Ты можешь запросить сколько угодно памяти на любой системе и ты ее получишь, это упрощает разработку. Link to comment Share on other sites More sharing options...
CORDAZEUS Posted March 27, 2019 Share Posted March 27, 2019 1 hour ago, Serero said: Нет. Программист просто пишет, что тут надо выделить сколько то памяти. Он сам даже не знает бла бла бла бла...... Не думаю что вы компетентны в данном вопросе. Даже поверхностное изучение данного вопроса показывает, что существует куча инструментов и вариантов по управлению/использованию памяти при программировании. Вы просто здесь флудите и вводите в заблуждение наивных пользователей. На месте модераторов я бы таких пользователей банил перманентно. Link to comment Share on other sites More sharing options...
MrJohnnyFive Posted March 27, 2019 Share Posted March 27, 2019 1 час назад, CORDAZEUS сказал: Не думаю что вы компетентны в данном вопросе. Даже поверхностное изучение данного вопроса показывает, что существует куча инструментов и вариантов по управлению/использованию памяти при программировании. Вы просто здесь флудите и вводите в заблуждение наивных пользователей. На месте модераторов я бы таких пользователей банил перманентно. Все правильно он пишет. Просто сейчас уже появилось такое поколение программистов, которые про стеки, ячейки памяти, регистры, выделение памяти и не знают. Всё их программирование проходит в различных Visual, которые максимально упрощают процесс программирования. И по-этому программы написанные 10 лет назад и сейчас отличают по объему в десятки, а то и в сотни раз при одной и той же функциональности. Link to comment Share on other sites More sharing options...
Serero Posted March 27, 2019 Share Posted March 27, 2019 7 часов назад, CORDAZEUS сказал: Не думаю что вы компетентны в данном вопросе. Вот это очень мудро. Не думайте. О моей компетенции пусть думает мой зарплатодатель. 7 часов назад, CORDAZEUS сказал: Даже поверхностное изучение данного вопроса показывает После поверхностного изучения вопроса появляются сторонники теории плоской Земли. Если нашли несоответствие с моими словами, то дайте ссылку или процетируйте. Это же так легко Ctrl+С Ctrl+V 7 часов назад, CORDAZEUS сказал: существует куча инструментов и вариантов по управлению/использованию памяти при программировании Существует много всего. А еще существуют паттерны разработки, стандарты, рекомендации разработчиков ОС и многое многое другое. От того что в интернете что то написано мои слова не стали менее авторитетны, а ваши более. В интернете вообще много чего найти можно. Например вот: https://habr.com/ru/post/245443/ Link to comment Share on other sites More sharing options...
White_Lugaru Posted March 28, 2019 Share Posted March 28, 2019 В 26.03.2019 в 13:01, MrJohnnyFive сказал: Фотошоп. Даже при 64 Гб оперативки он не запустится без свопа, так и будет орать, что нет файла подкачки и вываливаться. По крайней мере так было в версиях до какого-то года, последнее время я перестал пользоваться фотошопом и не знаю как в более свежих версиях с этой проверкой. Банальный прямой запрос на проверку размера определённого файла. Банально для подстраховки. Банально костыль в программе. Если теоретически сделать обновление системы, в котором имя файла подкачки изменено, не будет ли фотошоп отваливаться даже при наличии подкачки? Это говорит только о том, что в коде программы прописано определённое условие, но никак не о том, что программы всегда знают о файле подкачки. Link to comment Share on other sites More sharing options...
MrJohnnyFive Posted March 29, 2019 Share Posted March 29, 2019 10 часов назад, White_Lugaru сказал: Банальный прямой запрос на проверку размера определённого файла. Банально для подстраховки. Банально костыль в программе. Если теоретически сделать обновление системы, в котором имя файла подкачки изменено, не будет ли фотошоп отваливаться даже при наличии подкачки? Это говорит только о том, что в коде программы прописано определённое условие, но никак не о том, что программы всегда знают о файле подкачки. Абзацем ниже мной именно это и было написано: "И тут дело не в том, что программа сама решает какую память запрашивать, а в том, что есть банальный запрос на проверку того или иного ресурса и при его отсутствии реагировать тем или иным способом (так сказать костыли от разработчиков)." Link to comment Share on other sites More sharing options...
White_Lugaru Posted March 29, 2019 Share Posted March 29, 2019 6 часов назад, MrJohnnyFive сказал: Абзацем ниже мной именно это и было написано: "И тут дело не в том, что программа сама решает какую память запрашивать, а в том, что есть банальный запрос на проверку того или иного ресурса и при его отсутствии реагировать тем или иным способом (так сказать костыли от разработчиков)." Не спорю, что было и не претендую на открытие Америки. Посыл больше был к тому, что якобы программа знает, какую именно память использует, в смысле к тому, что это не так. Надо было поставить туда цитату @CORDAZEUS, каюсь. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.