|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 17412. Ответов 132
Метки нет (Все метки)
Нужно 2793 ГБ. У вас установлено столько в компе?
0
|
||
| 11.02.2021, 01:09 | |
|
Ответы с готовыми решениями:
132
Работа со стеком на последовательном распределении памяти Реализация стека на массиве и динамическом распределении памяти Реализовать процедуры работы со стеком на последовательном распределении памяти |
|
Модератор
|
||||
| 15.02.2021, 15:01 | ||||
Ты уже выше столько понаписал что потом самому стыдно читать будет Я без злости если что
0
|
||||
|
COM‐пропагандист
|
|
| 15.02.2021, 15:06 | |
|
0
|
|
|
|
|
| 15.02.2021, 15:26 | |
|
0
|
|
|
COM‐пропагандист
|
||
| 15.02.2021, 15:37 | ||
|
0
|
||
|
Модератор
|
||||||||
| 15.02.2021, 15:39 | ||||||||
|
1. Создаем файл нужного размера; 2 (а). Создаем DIB-секцию в которую передаем файл-маппинг созданного выше файла, где указываем какую часть файла мы будем использовать (к примеру 1000000 * 100 пикселей); 2 (б). Создаем GDI+ битмап в который передаем наш файл-маппинг и часть файла которую будем использовать; 3. Рисуем обычными GDI / GDI+ функциями на нужном регионе; 4. По завершении отрисовки, сбрасываем целый блок на диск, и переходим к п. 1 пока весь файл не будет обработан. Все. Задача решена.
0
|
||||||||
|
|
||
| 15.02.2021, 16:01 | ||
|
Ещё одно наблюдение. На диске Калькулятор.exe занимает 25Кб. Значит сто копий 25*100 = 2.5МБ Т.е. если нужно перекинуть 100 раз Калькулятор с HDD, то это 2.5МБ информации. Но в памяти 100 Калькуляторов занимают 4.1ГБ - 2.8ГБ = 1.3ГБ 1300МБ / 2.5МБ = 520 Итого, в вашей отражённой памяти с моего HDD в DDR4 в 250 раз больше занято памяти, чем взято на исходном HDD!
0
|
||
|
Кормпилятор
|
||||||||
| 15.02.2021, 18:23 | ||||||||
|
Вся эта мелочёвка. А на какой-нибудь старой машине с XP, да не дай бог с одним ядром будет всё иначе. Там местами даже DMA не пашут нормально(на всех, которые мне попадались не пашут) и запросы к дискам попросту останавливают всю систему, пока диск не ответит. Не видел такого ни разу? На современных машинах даже отголоски этого чувствуются, когда HDD. выискивать любые средства, чтобы сделать с минимальными затратами ресурсов. т.к. были заведены соотв. структуры в итоге алгоритм обозначит, в каких блоках, что должно быть, просто берём и фигачим. Грубо говоря задача оптимизирована и решена чисто алгоритмически. И отработает, скорее всего, намного быстрее, чем озвученный способ с дефолтным маппингом, по принципу массива как показывал Замабувараев. Про GDI и GDI+ совместно с маппингами вообще ничего сказать не могу, не баловался, может там вообще страшная жопа, тут сугубо тестировать надо, особенно на таких объёмах, новые винды вообще дерьмово работают с GDI, может легко оказаться, что софт быстрее в плане линий и кружочков. и не выводить их с прокруткой мышкой. Эврика...))) Добавлено через 10 минут там оказывается в десятки раз меньше этого объёма. Грубо говоря, от шейреда в данном конкретном случае толку мало. Но если используются экзешники и библиотеки толще - наверное что-то будет полезное, не много но будет.
0
|
||||||||
|
Модератор
|
||||||
| 15.02.2021, 18:53 | ||||||
|
Добавлено через 10 минут Кстати еще добавлю что данную задачу можно решить вообще без всяких ухищрений и выделений огромного количества виртуальной памяти, основываясь на том алгоритме что я написал, только вместо файл-маппинга использовать просто небольшой регион виртуальной памяти, отрисовывать в него также как я написал выше, сохранять в PNG в памяти маленький кусок изображения. После сохранения в PNG выдернуть IDAT чанк и добавить его в выходной файл. Поскольку PNG позволяет хранить множество IDAT чанков то файл в итоге будет правильным. Т.е. если касаться чисто того варианта что Замабувараев озвучил изначально, никаких терабайтов памяти не нужно (ну за исключением выходного файла который будет весить не терабайты, но все-равно много).
0
|
||||||
|
Кормпилятор
|
||
| 15.02.2021, 18:57 | ||
|
0
|
||
|
Модератор
|
|
| 16.02.2021, 00:29 | |
|
Написал небольшой тестовый проект по алгоритму который описал, правда рисует не фрактал, а просто окружности, но это неважно т.к. можно легко заменить, просто не хотелось тратить время еще на анализ и кластеризацию кусков.
Кстати GDI+ не поддерживает сохранение PNG больше 65535 пикселей, пришлось выбрать libpng. Удалось сделать изображение 100000 х 100000 пикселей (ушло около 15 минут) получился файл размером 187МБ: , для изображния 1000000 х 1000000 уйдет в среднем где-то в 100 раз больше. Фотошоп так и не смог у меня отобразить этот файл, создал на SSD файл в 39ГБ, что-то писал туда-сюда, мне надоело ждать я прибил процесс. Основное время занимает сжатие в PNG - отрисовка идет довольно быстро, так что если использовать обычный raw то можно намного быстрее отрисовать. Программа не содержит проверок ошибок и т.п., только самые базовые. Для буфера выделяется около 500МБ и программа работает с таким куском. Для компиляции и работы нужен вот этот мой фикс для VB6 т.к. libpng С-либа.
1
|
|
|
|
||
| 16.02.2021, 08:24 | ||
|
Вот так выглядит изображение в Qbasic Вложение 1224964 PNG формат поддерживает 1 бит палитру. Экономия памяти существенная, приведу различия между 24 бит и 1 бит Для размера 10000х10000 пикс соотношение текущего объема памяти 12МБ против 286МБ
0
|
||
|
Модератор
|
|
| 16.02.2021, 22:30 | |
|
Pro_grammer, сделал 1bpp
2
|
|
| 16.02.2021, 22:30 | |
|
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|