|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 15945. Ответов 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 | |
|
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|