|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 17523. Ответов 132
Метки нет (Все метки)
Нужно 2793 ГБ. У вас установлено столько в компе?
0
|
||
| 11.02.2021, 01:09 | |
|
Ответы с готовыми решениями:
132
Работа со стеком на последовательном распределении памяти Реализация стека на массиве и динамическом распределении памяти Реализовать процедуры работы со стеком на последовательном распределении памяти |
|
Модератор
|
||||
| 12.02.2021, 23:00 | ||||
|
Quiet Snow, это просто пример того что процесс может выделить памяти сколько ему нужно и работать с ней не смотря на то сколько у него установлено RAM. Тут нет никаких оптимизаций вообще, тут тупо массив от нулевого элемента и до конца забивается данными, т.е. когда физическая память кончается то система сначала одну страницу (4КБ) записывает в файл, а другую (4КБ) читает. По уму нужно делать это бОльшими регионами - это повысит быстродействие, но чудес не будет и все будет ограничено скоростью доступа к файлу.
1
|
||||
|
|
|||
| 12.02.2021, 23:04 | |||
![]() Уж извини, но это вообще не то, о чем я тут пишу. Смотри, ты пишешь : Но выделить память напрямую у тебя не вышло, вот так: Dim a(327680, 327680) As Byte не 2ТБ, а всего 100ГБ. Не умеет так Винда. И ты решил схитрить, создал принудительно swap файл на моём HDD swap.map ![]() Но вот облом, я запустил exe на диске, а там нету 100ГБ в наличии. А я писал выше, что виртуальная память не берётся с Луны, она должна физически присутствовать в компьютере! И чуда не вышло, израсходовав всю оперативку, ровно 16 ГБ, комп основательно затормозил, да так, что еле удалось вырубить через диспетчер задач.
1
|
|||
|
Модератор
|
||||||||||
| 12.02.2021, 23:26 | ||||||||||
ты читал что в мсдн написано? Будешь спорить с ними. Ок, я переубеждать не стану.
1
|
||||||||||
|
Кормпилятор
|
||||
| 13.02.2021, 00:09 | ||||
|
реально сжирали бы даже 4 Гб, т.е. лимит 32 битной системы. Ну т.е. сделать то это легко можно, но так чтобы этого требовала задача - такого не было. Хотя чисто теоретичеки можно было бы табличными оптимизациями занять неестественное пространство, но это нерациональный расход, пользователи за такое покусают. Ну кстати согласись, у нас мало народу, кто сможет так лаконично объяснить про такие глубокие вопросы, и не просто объяснить, а ещё и код показать. Так что Анатолию респект однозначно. Вот никогда особо не задумывался об этом, но профи так или иначе лезут в эти аспекты, колупают. По сути же это всё сделано для просто нормального управления памятью, т.е. назначать программам корректно свободные куски, не таская их туда сюда(это бы сильно замедлило процессы выделения и уничтожения памяти и требовало бы остановки всех процессов). Добавлено через 14 минут Т.е. своя архитектура под задачу. Она не даст, конечно, обратиться ко всему этому пространству, как файл маппинг, но если этого и не требуется - отработает значительно быстрее.
1
|
||||
|
COM‐пропагандист
|
|
| 13.02.2021, 00:32 | |
|
0
|
|
|
Кормпилятор
|
|||||||
| 13.02.2021, 00:35 | |||||||
|
И там где-то внизу зиждятся серверные винды, скромненько, со своими 24 терабайтами.
0
|
|||||||
|
|
||||
| 13.02.2021, 08:06 | ||||
![]() Пример хороший, спору нет. Но это он реализован в коде, вот когда Винда сможет без всяких бубнов просто выполнить этот код Dim a(327680, 327680) As Byte при недостатке физической оперативки, тогда да, я подниму руки вверх, скажу сдаюсь! А написать руками что угодно можно, особенно такому монстру как тебе. Я вообще удивился, что ты это не на VB6 написал, я был почти уверен, что сможешь
1
|
||||
|
COM‐пропагандист
|
||
| 13.02.2021, 08:19 | ||
|
0
|
||
|
|
||
| 13.02.2021, 08:42 | ||
|
0
|
||
|
COM‐пропагандист
|
|
| 13.02.2021, 09:10 | |
|
Вам дали указатель на область памяти. Вам есть разница каким образом этот указатель получен? Или вам конкретно нужно получить объект типа SafeArray, именно так в потрохах VB6 устроены массивы?
Добавлено через 15 минут Если SafeArray, то количество элементов упирается в 32‐битное целое, такой массив не может занимать больше четырёх гигабайт.
0
|
|
|
|
||||||||
| 13.02.2021, 09:43 | ||||||||
|
Утверждение: 2ТБ это максимальная оперативка в win10 pro. Иными словами The trick утверждает, что Винда сама может выделить память приложению столько, сколько оно запросит, если даже это будет больше, чем наличии оперативной памяти. Я прошу написать на любом ЯП эквивалент кода:
Ваш выход! FreeBasic x64 существует же? Пусть Винда сама выделит память под массив такого размера.
0
|
||||||||
|
COM‐пропагандист
|
||
| 13.02.2021, 09:53 | ||
|
0
|
||
|
Модератор
|
|||||||
| 13.02.2021, 10:03 | |||||||
|
0
|
|||||||
|
Модератор
|
||||||||
| 13.02.2021, 10:07 | ||||||||
0
|
||||||||
|
|
|||||||
| 13.02.2021, 10:31 | |||||||
|
И твой подход можно тупо заменить на файл с произвольным доступом. Без всяких танцев со swap.map, читать любые данные из файла и писать в файл. Даже массив не нужно создавать. А DIM это другое. Это Винда сама берёт, и автоматически выделяет память для массива. Мы больше ни чего не пишем в коде. Только DIM. Разницу видишь? просто скомпилировать 1 строчу
0
|
|||||||
|
Модератор
|
||||
| 13.02.2021, 10:41 | ||||
|
0
|
||||
|
COM‐пропагандист
|
||
| 13.02.2021, 11:02 | ||
|
Потому что указатель, возвращённый MapViewOfFile — это настоящий указатель на память и его можно отправлять в любую функцию где требуется указатель, например, во всякие винапи. Выполнять по этому указателю Placement New, таким образом создавать объекты. А с файлом что? Как HANDLE можно передать в функцию требующую указатель? Как на HANDLE можно создать объект?
0
|
||
|
|
||
| 13.02.2021, 11:11 | ||
|
Тупо выделить память под массив, которая больше оперативки. Но не силами самого приложения, как у The trick, а это должна сделать Винда сама. Вот такая простая задача.
0
|
||
|
Модератор
|
|
| 13.02.2021, 11:18 | |
|
Замабувараев, более того он не сможет с файлом разименовать указатель, а любой доступ ему придётся оборачивать в ReadFile/WriteFile/SetFilePointerEx. Я уже молчу о скорости при таком подходе.
Добавлено через 6 минут Pro_grammer, что задачи теперь на ходу будем придумывать? Вот тебе простое решение - создай файл подкачки на 200гб и включи его, если тебя не устраивает чем то внешний файл подкачки. И все функции винды подхватят его и будут работать как ты хочешь. Только зачем это нужно, если и так уже удалось выделить виртуальной памяти больше чем оперативной хотя ты говорил что это невозможно. Я прекрасно понимаю почему ты так сказал, а теперь изворачиваешься, но тут не дураки сидят. Извини мб грубо, но так и есть.
0
|
|
|
COM‐пропагандист
|
|||||||
| 13.02.2021, 11:25 | |||||||
0
|
|||||||
| 13.02.2021, 11:25 | |
|
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 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
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|