Size: a a a

2020 April 15

AM

Aleksey Muravev in pro.cxx
Ну и плюсом, что VirtualAlloc может зарезервировать адресное пространство без физического выделения памяти. А после можно туда страницы подсовывать
источник

A

Alex in pro.cxx
Спасибо.
У меня странный фэйл malloc, когда свободной памяти ещё полно. Хочу заменить на VirtualAlloc, и посмотреть, уйдёт ли проблема.
источник

AM

Aleksey Muravev in pro.cxx
Alex
Спасибо.
У меня странный фэйл malloc, когда свободной памяти ещё полно. Хочу заменить на VirtualAlloc, и посмотреть, уйдёт ли проблема.
Память не дебажил? Может фрагментация сильная
источник

AM

Aleksey Muravev in pro.cxx
Памяти много, но непрерывного куска нужного размера нет
источник

A

Alex in pro.cxx
да вот я ж фрагментацию и подозреваю, а как это можно проверить?
источник

IA

Igor Akhmetov in pro.cxx
Alex
да вот я ж фрагментацию и подозреваю, а как это можно проверить?
vmmap из sysinternals покажет физическую раскладку по памяти
источник

IZ

Ivan Zamorano in pro.cxx
Alex
да вот я ж фрагментацию и подозреваю, а как это можно проверить?
!heap -s в windbg, например, external fragmentation/ virtual address fragmentation
источник

IZ

Ivan Zamorano in pro.cxx
Alex
Спасибо.
У меня странный фэйл malloc, когда свободной памяти ещё полно. Хочу заменить на VirtualAlloc, и посмотреть, уйдёт ли проблема.
x32 или 64?
источник

A

Alex in pro.cxx
Ivan Zamorano
x32 или 64?
64, файл подкачки присутствует, свободной физ. памяти около 5 ГБ. Запрашиваю 300 МБ, получаю nullptr.
источник

IZ

Ivan Zamorano in pro.cxx
Alex
64, файл подкачки присутствует, свободной физ. памяти около 5 ГБ. Запрашиваю 300 МБ, получаю nullptr.
а как ты узнал сколько у тебя физ свободно? я б глянул текущий коммит лимит и коммит сайз (в 10ке вкладка performance в taskmgr), потом свой commit size в taskmgr. Если текущий общий коммит не близок к лимиту, то тогда уже !heap- s и vmmap.
источник

A

Alex in pro.cxx
узнал в таск менеджере на вкладке Performance -> Memory -> Available. Возможно, не самый надёжный показатель, но я и просил всего десятую часть от этого числа, даже меньше.
источник

IZ

Ivan Zamorano in pro.cxx
Alex
узнал в таск менеджере на вкладке Performance -> Memory -> Available. Возможно, не самый надёжный показатель, но я и просил всего десятую часть от этого числа, даже меньше.
а коммит сайз у приложения сколько?
источник

IZ

Ivan Zamorano in pro.cxx
ну там же в таск манагере
источник

A

Alex in pro.cxx
почему коммит, а не, например, private working set?
источник

IZ

Ivan Zamorano in pro.cxx
Alex
почему коммит, а не, например, private working set?
прайват воркинг сет - это сколько физ страниц сейчас ты используешь. коммит - это сколько ты всего запросил мемори.
источник

IZ

Ivan Zamorano in pro.cxx
т.е. страницы могут сваливаться в своп например
источник

A

Alex in pro.cxx
коммит 17 248 МБ, свободно 3.6 ГБ
источник

IZ

Ivan Zamorano in pro.cxx
а коммит это суммарно сколько ты попросил
источник

IZ

Ivan Zamorano in pro.cxx
Alex
коммит 17 248 МБ, свободно 3.6 ГБ
17 гб?
источник

A

Alex in pro.cxx
да
источник