Управление памятью.
Используете ли вы свои реализации операторов new и delete, new[] и delete[]?
Опрос открытый. |
Ответ: Управление памятью.
зависит от задачи.
если много каких-то объектов создаются/удаляются в рантайме, то предпочитаю один раз выделить под них фиксированные пулы. имхо, в идеале - все new должны быть на инициализации игры, все delete на выходе из игры. во время игры можно обходиться и без них. |
Ответ: Управление памятью.
Цитата:
|
Ответ: Управление памятью.
Цитата:
|
Ответ: Управление памятью.
Цитата:
при этом через месяц уже можешь забыть где перегружено, где нет, и гадай как оно работает. так что, имхо, - если выделяешь память нестандартным образом, то выделяй это читабельным путём, типа mem = myPool.Allocate(size). --- проголосовал "нет", но приврал - изменял new/delete для классов, которые обязаны были быть выравнены (внутри был _aligned_malloc) |
Ответ: Управление памятью.
пишу, хотя это не совсем корректно называть каноничным переопределением new\delete
Код:
void AddPointer(void * pointer, const char * fileName, unsigned int lineNum, unsigned char type, unsigned int size); 1) нету проблем с сторонними либами, потому что либа может содержать в хидерах вызов new\delete и поставляться в уже собранном виде, а мы при подключении хидера переопределим new\delete и всё сломается 2) в дебаге мы следим за каждым выделением, потому если что-то потечет то сразу узнаем где |
Ответ: Управление памятью.
полезно, но это:
Цитата:
стандартом не гарантируется sizeof(int) == sizeof(void*) например в cl.exe на 64 битный платформах инт 32 битен. делай уж все размеры связанные с выделением памяти size_t |
Ответ: Управление памятью.
HolyDel
помарка, виноват :) хотя это не так критично в данном месте, при выделении больше 4 гигов всего лишь в логе будет неверный размер |
Часовой пояс GMT +4, время: 00:57. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot