|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 13578. Ответов 132
Метки нет (Все метки)
Нужно 2793 ГБ. У вас установлено столько в компе?
0
|
||
| 11.02.2021, 01:09 | |
|
Ответы с готовыми решениями:
132
Работа со стеком на последовательном распределении памяти Реализация стека на массиве и динамическом распределении памяти Реализовать процедуры работы со стеком на последовательном распределении памяти |
|
Модератор
|
||
| 13.02.2021, 23:07 | ||
|
Во-вторых, своп может быть уже заполнен на какую-то величину, т.к. система может сбрасывать туда страницы исходя из нескольких факторов. Ты и сам можешь посмотреть на сколько у тебя заполнен файл подкачки через счетчики производительности: По твоему файлу - у меня все заработало, хотя и памяти меньше чем у тебя. Память выделяется в хипе. Могу сделать вывод что у тебя просто недостаточно памяти и система просто не может зарезервировать нужный регион памяти, т.к. ты создал файл подкачки "впритык" 50ГБ и выделяешь 49.999ГБ. Всеми процессами и ядром у тебя занято больше чем ((файл подкачки + RAM) - вся выделенная память) < 50ГБ. Сделаешь чуть больше размер - все заработает. К примеру я при файле подкачки в 50ГБ + оперативки 14ГБ могу выделить максимум 58ГБ:
0
|
||
|
Кормпилятор
|
|||||
| 14.02.2021, 00:02 | |||||
|
Ничего хорошего из этого не выйдет. А ограничиловка эта она скорее не чтобы сильно ограничить, а чтобы не дать выжрать всё полностью. Потому что опять же ты не знаешь включен своп или нет у человека, и есть ли даже та память, которая была затребована для этого "окошка". Как бы если включен, то мы получаем хард резет от пользователя. У него вообще может не быть свободного места на диске. Плюс это надо сильно заморочиться и на FB сделать как написал Замабувараев, т.е. адресовать голую память, а не массив. Это всё не особо удобно, сразу придётся думать, чем заменить привычные DIM, REDIM PRESERVE, UBOUND\LBOUND. человеческого применения. И мой пример с браузером тому очень яркое доказательство. Т.е. пример реальной попытки далеко выйти за пределы физической памяти в своп, ты ведь сам утверждал, что он работает абсолютно одинаково. Вот эта цитата: В целом я за то, что этот механизм для другого был создан, для того, чтобы система рулила памятью, а эти бенефиты с огромными размерами подкачки - побочка, потому и сделали они возможность вырубить файл подкачки, чтобы поользователь не страдал почём зря и если памяти нет лучше прога пусть сразу упадёт, чем потребуется хард резет и пользователь может потерять в разы больше данных во всех открытых программах. Добавлено через 10 минут Ну и по поводу что "всё нормально" тоже нет. Может у тебя на SSD в рейде и нормально. Но у меня все харды обычные и много где тоже самое, выше приводил задачи, которые в прямом смысле станут невозможными при постоянном свопе с одного диска. Не нужно забывать что мы в многозадачной среде и пользователь не будет сидеть и ждать пока программа отработает, он захочет сделать всё параллельно и бонусом будет рыться на сайтах и смотреть ютьюб. Ну если у него, кончено, нет второго компа. В случае с 4\8 Гб это всё запросто приводит к свопам. Добавлено через 8 минут этот файл будет лежать на диске мёртвым грузом. Не сказать что ценный мех, но как-бы жалко.
1
|
|||||
|
Модератор
|
||||||||
| 14.02.2021, 00:19 | ||||||||
|
Добавлено через 2 минуты
0
|
||||||||
|
Кормпилятор
|
||||||||
| 14.02.2021, 01:55 | ||||||||
|
индикатор жёсткого диска - ноль затупов. Вообще ничего не выгрузило. Да я помню что иногда выгружает, но в каких обстоятельствах - хз. Видимо пока другие проги не начнут жрать много. А может ему просто комфортно когда 32 гига оперативы. Надо попробовать на меньших объёмах. кусками и не параноидально как ОС, а методично. Ты пишешь что там идут выгрузки по 4 кб, в большинстве стандартных случаев это соотв. размеру кластера. Но когда память нужна из разных кусков, диск начинает колбасить(т.е. позиционирование читающей головки или попросту - растёт время доступа). Когда диск ещё и фрагментирован - это становится большой проблемой. Например архиватор, который распаковывает с диска C:\ на диск C:\. Он читает линейный кусок(который тоже может быть фрагментирован и чаще так и есть) и пишет множество разных файлов, для записи головка должна ещё сместиться на FAT и обратно. Уже приличный расколбас. Попытка в этот же момент открыть любую программу которая сама по себе обычно грузится за долю секунды может обернуться ожиданием в минуту. Открытие же чего-то большего можно ждать часами. При этом разархивация замедляется ровно во столько же раз, ползунок прогресса просто останавливается, с диска идёт не чтение, а он тупо колбасится между файлами пытаясь быстро выдрать маленький кусочек и отдать проге, т.е пытается разорваться на всех. Думаю, каждый это видел и чувствовал, не знаю какие тут могут быть вопросы. Это всё проверяется, Не с бодуна это пишу, сам сидел на 4 гигах 10 лет и на 8 гигах 6 лет, такая себе радость, особенно когда надо пооткрывать вкладок и чтобы ещё куча софта в фоне висело. адреса из этих 100 гигабайт, то увидишь что там случится, это будет крах. И как можно будет открыть на компе с одним HDD диском хоть одну программу, которая до этого не была открыта. Суть не в том, что оно не работает, оно то работает, суть в том, что это такое себе ухищрение, которое ничего особо не даёт кроме тормозов. Для использования этих штук нужны условия близкие к идеальным, ну чтобы от этого толк был. Добавлено через 16 минут пользователя. А пишет оно само собой одинаково. И без разницы это будет своп или простой доступ к файлу. Ничего особо не поможет. Ну разве что просто грамотно сделать архитектуру софта, чтобы избежать расколбаса головок диска, если уж надо в это влезать. Добавлено через 17 минут никуда не девается, это неотъемлемая часть системы. Всё логично. А что там внутри, global alloc, heap alloc или что-то ещё - это уже не моё дело. При желании, наверное, можно залезть в исходники FB и увидеть что там наворотили. Думаю обычный сишный malloc.
0
|
||||||||
|
|
||||
| 14.02.2021, 08:50 | ||||
И если оставить " выбор на усмотрение системы", то система сама никогда не выделит 100ГБ и уж тем более 2.5ТБ Собственно с этого и начали, что система сама не может. Т.о. из многочисленных опытов можно сделать только один вывод, что эта ситуация
0
|
||||
|
COM‐пропагандист
|
|||
| 14.02.2021, 09:02 | |||
|
Так уж и практически невозможна? Вот опровержение: https://www.blenda.by/blog/sam... apikselej/
0
|
|||
|
|
||
| 14.02.2021, 10:33 | ||
![]() Это программная фишка, всегда показывается только маленькая часть. Не будешь же серьёзно утверждать, что Винда умеет сочинять музыку и писать стихи? Но программы такие есть.
0
|
||
|
COM‐пропагандист
|
||
| 14.02.2021, 11:10 | ||
|
0
|
||
|
Модератор
|
||||||||||||
| 14.02.2021, 11:43 | ||||||||||||
|
0
|
||||||||||||
|
|
|||
| 14.02.2021, 12:57 | |||
|
Мы сами должны сказать системе, сколько надо, а она сама не умеет выделить сколько нужно, если в оперативку не лезет. Всё? Добавлено через 27 минут Файл подкачки считаем включен в режим "система сама определяет размер", хард имеет достаточный размер, пусть 5ТБ. Получится?
0
|
|||
|
Модератор
|
|||
| 14.02.2021, 14:08 | |||
|
0
|
|||
|
COM‐пропагандист
|
||
| 14.02.2021, 15:05 | ||
|
0
|
||
|
|
||
| 14.02.2021, 15:22 [ТС] | ||
|
Можно ли создать картинку функцией CreateCompatibleBitmap или подобной размером миллион на миллион точек используя виртуальную память о которой вы пишите? Потом нужно сохранить результат в виде графического файла (картинки) чтобы в дальнейшем загрузить и отобразить на экране.
0
|
||
|
Модератор
|
|||
| 14.02.2021, 18:11 | |||
|
0
|
|||
|
Кормпилятор
|
||||||
| 14.02.2021, 18:36 | ||||||
|
он таки будет исчерпан и когда это случится начнётся страшная жопа и она начнётся на обычных хардах. Чем крупнее будет этот файл и чем большая разница в используемых адресах, тем жопа крупнее. Хаотичное обращение ко всему пространству не сделает выгоду, система этого автоматом не поймёт, выгоду можно сделать только правильной архитектурой софта. Вот про что пишу. Про то, что когда приходит время скидывания на хард(если его не дерёт что-то ещё), лучше иметь то, что пишет крупные блоки, чем то, что тупо колбасится. А за счёт чего это будет достигнуто - думать программисту. Это нетривиальная задача. Можно решать её средствами системы и получать хард резеты с потерей всех своих данных, а можно подумать как конкретную задачу решить лучше. Опять же у меня нет таких задач и все эти пространные рассуждения тут выглядят не особо здраво, типа завести 100 Гигабайт не знамо зачем, как читаться с них данные будут никто не знает, а нужны ли они вообще или лучше подумать об оптимизации, как сделать так чтобы их не заводить. Для свопов вообще люди отводят отдельные диски и заводят FAT разделы. Но чаще покупают оперативу, чтобы это перестало быть проблемой. Хотя я с ним не совсем согласен. И всё же разница есть. В одном случае система должна думать какие процессы подкачивать\скидывать (т.к. они одновременно обращаются к памяти) и ставить приоритеты, в другом - просто голые страницы памяти, о которых ничего нельзя сказать. По поводу безопасности - всякий чит софт тоже память читает и пишет легко, те кто хочет что то потырить - сделает это менее заметным способом чем драконить файл подкачки, юзер сразу увидит что за прога там лопатит через какой-нть Anvir Task Manager. Добавлено через 17 минут Так то и выходит, что нормальным программистам такое не надо, они как-то себя в руках держат в аппетитах, только всякие бесзадачные люди могут такие темы поднимать.
0
|
||||||
|
Модератор
|
||||||||||
| 14.02.2021, 19:10 | ||||||||||
|
0
|
||||||||||
|
Кормпилятор
|
|||||||
| 14.02.2021, 20:05 | |||||||
|
какой-нибудь старой баракуде на 160 Гигов, и обращайся по случайным адресам этого "массива" запись чтение, запись чтение, сэмулируй худший сценарий. Понимаешь какая скорость чтения будет? В реальности такое не редкость. Приводил в пример браузеры, очень популярный софт. Все знают как они себя ведут в подобных условиях. Обычно когда начинается своппинг, ещё 3-5 вкладок(если на компе мало оперативы, допустим 4Гб) и пользоваться невозможно совсем. Это обычная ситуация и её легко смоделировать, у всех есть старые ноуты или бесхозные коры дуо\пеньки. память под то, что её требует. К слову ещё одна причина не использовать свопы и маппинги. Так то конечно да злоумышленник не знает ни имя файла ни его назначение, но всё же, всё равно дыра. Добавлено через 15 минут когда мы пытаемся так действовать, т.е. через работу с жёстким диском. Скорость в данном случае это вопрос задачи, а не вопрос надежды на ОС. В общем то про это и говорил, прочитай мои сообщения, что небольшой выход в своп - не сильно критичен. Критичен серьёзный, глубокий заход в своп. Да может так случиться, что прога будет методично последовательно отрабатывать свои данные и система будет писать всё более или менее крупными кусками, диск не будет колбасить и всё будет норм. А может быть прямо наоборот, абсолютно случайные куски в случайных местах, да ещё и своп файл фрагментирован, потому что нет цельного куска на диске и там начинается возьня. Можешь да, разумеется, но когда заводишь 100ГБ данных под видом массива, очевидно заводишь их с какой-либо целью, например с целью использовать этот объём в достаточной мере.
0
|
|||||||
|
Модератор
|
||||||
| 14.02.2021, 20:14 | ||||||
|
Добавлено через 7 минут
0
|
||||||
|
Кормпилятор
|
||||
| 14.02.2021, 20:28 | ||||
|
Как раз могу организовать в программе буфер и даже некое подобие этого маппинга причём с более умным алгоритмом, если хорошо сесть и заморочиться. А озвученный тобой механизм, после записи этого самого ворксета начнёт выгружать одно и догружать другое и сам бог не увидит как он это будет делать. В когда соотношение памяти станет раза в 1.5 меньше чем этот файл, оно уйдёт в глубокий своп и уже молчу про хаотичное дёргание 100 Гб. Конечно это худший сценарий, но оно недалеко от истины, просто потому что если у тебя заполнена вся доступная оператива, любой загрузке крупного блока(допустим на вкладку с сайтом) будет следовать выгрузка, выгрузка чего - ты не знаешь, что в бошку системе взбредёт то и выгрузит, может частично кусками выгрузить, а потом чтобы это обратно вернуть придётся устраивать расколбас головке диска. Блин эту проблему же легко понять. Я тут уже несколько страниц распинаюсь.
0
|
||||
|
Модератор
|
||||||
| 14.02.2021, 20:47 | ||||||
|
0
|
||||||
| 14.02.2021, 20:47 | |
|
Помогаю со студенческими работами здесь
80
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|