![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Darked |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 26.2.2004 Где: Южный Урал Репутация: нет Всего: нет |
Доброе время суток.
Уважаемые господа программсты, поделитесь опытом, когда стоит захватывать память в куче в начале программы (заранее большой) под типовые задачки и освобождать в конце, иногда только для больших задач ресайзить, а когда стоит захватывать и сразу же освобождать после того, как память больше не нужна (для текущей задачи) ? Хотелось бы услышать плюсы и минусы обоих методов. А то, меня почти убедили захватывать вначчале достаточный кусок, и потом его юзать. -------------------- Veni, Vidi, Vici !!! |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Если ты юзаешь кусок в течении всей программы, то лучше конечно забрать один раз. Иначе ориентируешься на 200 средних МБ свободной памяти.
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
тут вообще нету общего ответа - надо смотреть по задаче: какие объекты выделяются, каких размеров, сколько надо минимум, максимум, обычно...
-------------------- qqq |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Darked, выделение памяти сэкономит время в самом начале засчёт убияния времени на гонение оной туда-сюда, ведь все равно она тебе вся понадобится в дальнейшем.
Зависит от задачи конечно. Это сообщение отредактировал(а) chipset - 4.4.2005, 13:44 --------------------
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
тут еще появляется такой вопрос: а сможешь ли ты пользоваться выделенной памятью более эффективно, чем стандартный менеджер?
например, если есть куча объектов одинакового размера тогда, возможно и стоит написать что-то вроде своего менеджера кучи, использующего эту особенность во благо или если есть стека - тут вообще все просто - выделяешь себе страничку (потом, если не будет хватать, еще) и переходишь на свои функции выделения/освобождения памяти (которые будут занимать мизерное количество времени), тогда отделение работы с такими объектами от обычной кучи может дать выигрыш и в скорости и в количестве используемой памяти (фрагментации там совсем не будет) -------------------- qqq |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
Тут нужно оценить скорость выполнения операций освобождения/выделения памяти. Если этот параметр не критичен, то тогда имеет смысл использовать ресурсы когда нужно, и освобождать их как только ресурс не используется. Это хороший стиль. (опять яросные споры будут
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |