WinXP VC7.1
Распределение через стандартный new.
Можно ли как-то оценить сабж? Хоть как-то косвенно.
Может есть какая-то "волшебная" улилита или task manager на это косвенно указывает.
Что у меня за проблема говорить не буду, итак знаю что ответят:
— искать утечки
— выделять память в обход new
— использовать пулы
— выделять память заранее
Хотелось бы услышать чётко по сабжу, всё равно какими причинами он вызван.
Если внешних библиотек нет (или их можно пересобрать), то можно пересобрать проект с Hoard'ом и посмотреть разницу.
P.S. способ проще: (только не смейтесь) посмотрите как оно ведет себя под Vista — у нее менеджер памяти лучше с фрагментацией дружит.
Здравствуйте, Шебеко Евгений, Вы писали:
ШЕ>WinXP VC7.1 ШЕ>Распределение через стандартный new. ШЕ>Можно ли как-то оценить сабж? Хоть как-то косвенно.
Можно самостоятельно пробежаться по адресному пространству (VirtualQuery etc.) и/или по хипу и посчитать ту статистику, которая интересует (размер максимального доступного блока, например).
ШЕ>Может есть какая-то "волшебная" улилита или task manager на это косвенно указывает.
ШЕ>Что у меня за проблема говорить не буду, итак знаю что ответят: ШЕ>- искать утечки ШЕ>- выделять память в обход new ШЕ>- использовать пулы ШЕ>- выделять память заранее
Не-не-не, самое главное пропустил — заюзать low fragmentation heap (пара API вызовов).
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
S>P.S. способ проще: (только не смейтесь) посмотрите как оно ведет себя под Vista — у нее менеджер памяти лучше с фрагментацией дружит.
За это спасибо, проверю.
ШЕ>Что у меня за проблема говорить не буду, итак знаю что ответят:
Как же я ещё забыл:
— использовать аллокатор A — самый быстрый аллокатор.
— использовать аллокатор B, который на 10% быстрее аллоктора A.
— использовать (a-z)malloc
Так что если хотите это предложить, то лучше не надо.
Интересует только анализ.