|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 14639. Ответов 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
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|