|
|
||
Дискуссия о распределении памяти в ОС11.02.2021, 01:09. Показов 16347. Ответов 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 | |
|
Реализовать процедуры работы со стеком на последовательном распределении памяти
Стек: Реализовать процедуры работы со стеком на последовательном распределении памяти
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|