|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 13923. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|