![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Jcs |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 1.10.2003 Репутация: нет Всего: нет |
Писал ли кто-нибудь свой распределитель памяти и сборщик мусора? Можно ли в своем распределителе использовать стандартный сборщик мусора (насколько я знаю, написать эффективный сборщик - задача довольно нетривиальная). Спасибо.
|
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
На мой взгляд, не следует с этим вообще связываться. Есть книга Джеффа Элджера из серии "библиотека программиста", там это описано. Как я понимаю, ты именно ее и прочитал. Это имеет смысл при необычных требованиях к быстродействию, ведь кача размещается в стеке (!), где выделение происходит быстрее. А вообще обычно достаточно умных указателей, даже простых auto_ptr<>. Да, кстати, не знал, что хотя бы один из существующих компиляторов С++ поддерживает сборку мусора (это, как я понимаю, нахождение безымянных областей памяти и исправление неверных указателей). В яве есть, а в срр нету, по-моему.
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
это потдерживает managed с++ из NET |
|||
|
||||
| Jcs |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 1.10.2003 Репутация: нет Всего: нет |
Мне просто интересно, как они, эти встроенные сборщики работают (по скорости). Мне, к примеру, нужно чтобы все динамические объекты создавались в определенном банке памяти (для микропроцессорного варианта), с адреса а0 по аN. Да и стандартный менеджер слишком медленно работает с большим количеством маленьких объектов (создаваемых и удаляемых), поэтому подобная дилемма и возникла. А опыта работы со встроенным сборщиками практически нет. Вот и думаю как поступить.. Спасибо за отклик.
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
В таких случаях обычно пишут свой менеджер памяти, который берет на себя функции опреаторов new и delete - самое эффективное в данном случае решение. Тогда при запуске менежер захватывает в свой кеш большой кусок памяти и раздает ее из кеша.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |