Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Захват все памяти вначале или... захвват когда нужно ? 
:(
    Опции темы
Darked
Дата 4.4.2005, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 26.2.2004
Где: Южный Урал

Репутация: нет
Всего: нет



Доброе время суток.
Уважаемые господа программсты, поделитесь опытом, когда стоит захватывать память в куче в начале программы (заранее большой) под типовые задачки и освобождать в конце, иногда только для больших задач ресайзить, а когда стоит захватывать и сразу же освобождать после того, как память больше не нужна (для текущей задачи) ?
Хотелось бы услышать плюсы и минусы обоих методов. А то, меня почти убедили захватывать вначчале достаточный кусок, и потом его юзать.


--------------------
Veni, Vidi, Vici !!!
PM MAIL ICQ   Вверх
sergejzr
Дата 4.4.2005, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Если ты юзаешь кусок в течении всей программы, то лучше конечно забрать один раз. Иначе ориентируешься на 200 средних МБ свободной памяти.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
maxim1000
Дата 4.4.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



тут вообще нету общего ответа - надо смотреть по задаче: какие объекты выделяются, каких размеров, сколько надо минимум, максимум, обычно...


--------------------
qqq
PM WWW   Вверх
chipset
Дата 4.4.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Darked, выделение памяти сэкономит время в самом начале засчёт убияния времени на гонение оной туда-сюда, ведь все равно она тебе вся понадобится в дальнейшем.
Зависит от задачи конечно.

Это сообщение отредактировал(а) chipset - 4.4.2005, 13:44


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
maxim1000
Дата 4.4.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



тут еще появляется такой вопрос: а сможешь ли ты пользоваться выделенной памятью более эффективно, чем стандартный менеджер?
например, если есть куча объектов одинакового размера
тогда, возможно и стоит написать что-то вроде своего менеджера кучи, использующего эту особенность во благо smile (при одинаковых размерах объектов, например, фрагментации вообще можно не бояться, да и алгоритм выделения/освобождения, наверное, можно упростить)

или если есть стека - тут вообще все просто - выделяешь себе страничку (потом, если не будет хватать, еще) и переходишь на свои функции выделения/освобождения памяти (которые будут занимать мизерное количество времени), тогда отделение работы с такими объектами от обычной кучи может дать выигрыш и в скорости и в количестве используемой памяти (фрагментации там совсем не будет)


--------------------
qqq
PM WWW   Вверх
np9mi7
Дата 4.4.2005, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Тут нужно оценить скорость выполнения операций освобождения/выделения памяти. Если этот параметр не критичен, то тогда имеет смысл использовать ресурсы когда нужно, и освобождать их как только ресурс не используется. Это хороший стиль. (опять яросные споры будут smile ) Если на с++, то smatr_ptr тебе в этом очень поможет


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1323 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.