|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 14686. Ответов 132
Метки нет (Все метки)
Нужно 2793 ГБ. У вас установлено столько в компе?
0
|
||
| 11.02.2021, 01:09 | |
|
Ответы с готовыми решениями:
132
Работа со стеком на последовательном распределении памяти Реализация стека на массиве и динамическом распределении памяти Реализовать процедуры работы со стеком на последовательном распределении памяти |
|
Кормпилятор
|
|||||
| 14.02.2021, 20:51 | |||||
|
Её же надо хранить, если ты её пишешь Подумай ё маё...конкретно в данной ситуации оно лучше, т.е. в статичной уже размеченной БД. Большинство грамотных людей понимают, что харды за одну и ту же цену надёжнее во много раз чем SSD, поэтому не торопятся менять их, а если меняют, то на недешёвые NVMe с приличным ресурсом. В популяции хардов ещё вагоны, я не сторонник ущемления этих людей. Это производителям SSD-шников выгодно, делать софт таким, чтобы он грузился по пол дня, потолще был, побольше информации сохранял, чтобы побыстрее убивать ресурс SSD, чтобы их постоянно покупали.
0
|
|||||
|
|
||
| 14.02.2021, 21:18 [ТС] | ||
|
Если виртуальная память не позволяет работать с большой картинкой, то смысл ее обсуждать?
1
|
||
|
COM‐пропагандист
|
|
| 14.02.2021, 21:22 | |
|
0
|
|
|
Кормпилятор
|
||||||
| 14.02.2021, 21:48 | ||||||
|
не 4k секторов, а толстых кусков. А также разделение процессов чтения и записи. Это умнее, если подгонять строго под задачу. Лучше хуже - дело конкретной ситуации. Не буду спорить, что есть задачи в которых маппинг будет оптимален. с одними и теми же адресами. Но оно не учитывает то, как диск будет рваться на части, когда запросы пойдут на разные адреса. SSD в этом плане хорош, но его ресурс конечен и большая их часть - дешёвые на 120 гигов. Заняв объём в 100 гигов, мы сознательно лишим диск приличного ресурса. как единственно возможное решение всех вопросов. Для хранения - в самый раз. Как один из вариантов оптимизации критически важного ресурса задачи. Добавлено через 10 минут Это страшные объёмы. Я обычно пол дня это просто форматирую.
0
|
||||||
|
|
||
| 14.02.2021, 22:10 [ТС] | ||
|
1
|
||
|
Модератор
|
|||||
| 14.02.2021, 22:15 | |||||
|
Вот тебе небольшая информация про маппинги:
0
|
|||||
|
Кормпилятор
|
|||||
| 14.02.2021, 22:53 | |||||
|
даже близко не представлю, что будет там происходить и как оно будет работать. и этого, мягко говоря, не хватает. Проверяется банально, запусти свой своп на диске C:\ запусти архиватор, чтобы он распаковывал гигабайт 10 с диска C:\ на диск C:\ чтобы там было много файлов, например half-life 2 распакуй там тысяч 50 файлов))). Сначала запусти по отдельности то и то, и потом запусти вместе оба процесса. Увидишь разницу во времени. Эта разница и есть те огромные накладные расходы про которые пишу. 1) А если запись, рандомом по всему массиву? 2) А если 0, 4096, 8192, 12228 и так до конца, тоже запись, потом смещаемся на единицу и опять до конца? 3) Последовательный прогон записи, а потом обращения в начало записи, в конец записи, в начало записи, в конец записи. И всё это на каком-нибудь двухъядернике на 2000\XP со стареньким диском. Добавлено через 4 минуты
0
|
|||||
|
Модератор
|
|||||||||||
| 14.02.2021, 23:39 | |||||||||||
Добавлено через 8 минут 2) Страницы будут подгружаться по мере надобности, при нехватки рабочего набора, давно неиспользуемые страницы будут выгружены в файл-маппинг; 3) Страницы будут подгружаться по мере надобности, при нехватки рабочего набора, давно неиспользуемые страницы будут выгружены в файл-маппинг; Намного больше действий и манипуляций с диском будет происходить если все это делать через обычный файловый ввод/вывод. Так что тут никаких преимуществ твой способ также не имеет.
0
|
|||||||||||
|
Кормпилятор
|
|||||||
| 15.02.2021, 01:07 | |||||||
|
1) После заполнения рабочего набора, начнётся выгрузка и загрузка, и т.к. система не экстрасенс, она будет делать именно то, что ты пишешь "подгружаться по мере надобности", просто надобность будет постоянная и 100Гб не влезет ни в какой кэш ни в аппаратный ни в системный. 2) Можно долго предполагать, что пользователю вдруг потребовался массив в 100Гб ради того чтобы едва ли по нему пробежаться. Но это не так. Если даже взять то что обсуждают тут. Огромный BMP файл, он организован построчно, и если его потребуется заполнять попиксельно в разных местах - будет всё то, про что пишу. Если представить энкодер, который с такими задачами мол справится, мы получаем жуткую картину, он читает много файлов картинок, из которых лепили общую, так вот мало того что, каждый файл будет дёргать диск, так ещё это и большая фрагментация, а учитывая все эти стандартные 8x8 блоки, осознаем что для блока придётся прочитать 8 строк(а они могут быть[и будут] очень большими), далее сработает кэш по всем ост. болокам, потом ещё 8 строк, и так до тех пор пока память не будет забита, после чего начнётся жопа. Диск будет колбаситься между загрузкой исходника, выгрузкой строк, загрузкой новых (причём по одной и это будет жёстко) и соотв. сохранением файла тоже немаленького на тот же диск. 3) После заполнения оперативной памяти будет то, что ты нам показал в своей проге, ровно до того момента, когда начнутся не особо предсказуемые обращения и если адреса этих обращений будут сильно разниться не образуя предсказуемую структуру - начнётся расколбас головки диска. То, про что говорил, чередование чтение\запись, работа не секторами, а более менее большими кусками. Геморно конечно, страшный гемор, просто от этого будет толк. Это не смогу доказать сделав один цикл, т.к. пишу про большую проектную работу и не про абстрактные манипуляции с данными, тут конечно проще сказать, что несу чушь и ничем это не подкрепляю. Да ради бога тут все всё видят и могут проверить мои тезисы сами на своей, как грится шкуре. Тем не менее можно обратиться к уже готовым решениям. Ты говорил что маппинг и подкачка работают одинаково, хорошо, мой пример с браузером идеально подходит, берём комп с 2 гигами оперативы, обычным HDD небольшого размера, ставим файл подкачки 16 Гб(для верности) и открываем 70-80 вкладок полностью забитых миниатюрами картинок, прям листаем каждую вкладку до конца, чтобы как можно больше миниатюр попало в память(само собой аппаратное ускорение должно быть отключено чтобы видеопамять не участвовала). Можно это делать на голой чистой винде, без софта в тепличных условиях, чтобы не дай бог ничего не помешало. И когда активно пойдёт своп, продолжать работать. Вот тогда то реалии и застигнут в расплох эту идеологию. Мне интересно сколько вкладок у тебя получится открыть и можно ли будет назвать это действо "работой" за компом, к моменту полного заполнения виртуальной памяти, да даже половины. Классический пользовательский сценарий, миллионы людей этим пользуются. Миллионы знакомы с этой проблемой. Это по поводу "никто не видел", ну т.е. от обратного получается - мол все значит видели виртуальную память в виде файла подкачки, а то, про что пишу не видели. Это странно... Проблеме уже не один и даже не два десятка лет, а люди не видели. Штука для специфических узконаправленных задач, БД, HEX редакторы и сходный софт. Где надо сильно не шурша по памяти, быстро переместиться и записать\считать кусок.
0
|
|||||||
|
COM‐пропагандист
|
||
| 15.02.2021, 06:48 | ||
|
0
|
||
|
|
|||
| 15.02.2021, 08:35 | |||
|
Как отображает без физического прочтения файла?
0
|
|||
|
COM‐пропагандист
|
||
| 15.02.2021, 09:07 | ||
|
При отображении оно читает из файла только те данные, к страницам которым идёт обращение. А при ReadFile как вы определите какие данные загружать, а какие не надо? Второй момент: как вы при ReadFile сделаете разделяемую между процессами память? Например, код DLL разделяется между всеми процессами, которые её используют, что позволяет не загружать один и тот же код во все процессы, а использовать общую память.
0
|
||
|
|
|
| 15.02.2021, 09:14 | |
|
0
|
|
|
COM‐пропагандист
|
||
| 15.02.2021, 09:33 | ||
|
Более того, Я только что объяснил, как исполняемый код попадает в память на выполнение.
0
|
||
|
|
|
| 15.02.2021, 09:35 | |
|
0
|
|
|
COM‐пропагандист
|
||
| 15.02.2021, 09:39 | ||
|
0
|
||
|
|
||
| 15.02.2021, 09:58 | ||
|
Вы пытаетесь навязать ему неверное мнение, чтобы потом его разоблачить? ![]() Добавлено через 4 минуты Отображение файла, чтение файла, копирование файла - у всех один и тот же недостаток, если это с HDD в RAM, а именно ёрзание головок диска над поверхностью магнитного диска, что очень замедляет процесс. Мне кажется это и хотел сказать Quiet Snow, не более того.
0
|
||
|
COM‐пропагандист
|
|||
| 15.02.2021, 10:07 | |||
|
Добавлено через 5 минут
0
|
|||
|
Модератор
|
|||||||||
| 15.02.2021, 10:13 | |||||||||
|
0
|
|||||||||
| 15.02.2021, 10:13 | |
|
Помогаю со студенческими работами здесь
100
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
|
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
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|