powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пул на базе unique_ptr
25 сообщений из 63, страница 2 из 3
Пул на базе unique_ptr
    #39741783
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНикто не отменял фрагментацию кучи, при которой память растет, а утечки нет.

Вот вот

Поэтому и родилась идея посмотреть как ведет себя  RSS если два участка памяти активно аллоцирующие char[] и кладущие его в std::unique_ptr заменить пулированием.

Думаю что это и производительность может поднять.
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39741784
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема тока в том что там этот  unique_ptr из данного класса передается еще в 1000 мест и просто подменить Deleter не вариант
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39741786
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenПулирование - это просто способ проверить поведение если убрать эту аллокацию - деаллокацию.

Как я уже сказал выше: пул автоматически ведёт стандартный менеджер памяти. Твои пляски с
бубном просто повторят его действия, но ничего не изменят.

Инструменты в том топике, кстати, неплохие подсказали. Но они тоже вряд ли помогут. Так
что придётся-таки ручками и головой понимать почему в россии не делают опенсорса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39741787
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКак я уже сказал выше: пул автоматически ведёт стандартный менеджер памяти. Твои пляски с
бубном просто повторят его действия, но ничего не изменят.


Это не так

Отдавать в конкретную точку заранее преаллоцированные char[] или брать их из хипа - это 2 разные вещи


Dimitry SibiryakovТак что придётся-таки ручками и головой понимать почему в россии не делают опенсорса.


Завязывай хамить.

Я с тобой тут предельно уважительно общаюсь - но могу и по другому - боюсь правда опять забанят.
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39741801
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenОтдавать в конкретную точку заранее преаллоцированные char[] или брать их из хипа - это 2
разные вещи

Одинаковые. В хипе точно такие же цепочки "преаллоцированных char[]" из которых ММ
выбирает самую подходящую.

Я бы на твоём месте натравил на программу DrMemory, подождал пока она отъест память и
сбросил полный дамп выделенных блоков. Портянка будет километрового размера, но за пару
дней ты наверняка выяснишь с точностью до строчки кода где выделяется лишняя память.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39741818
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsemen.s.semenОтдавать в конкретную точку заранее преаллоцированные char[] или брать их из хипа - это 2
разные вещи

Одинаковые. В хипе точно такие же цепочки "преаллоцированных char[]" из которых ММ
выбирает самую подходящую.

Я бы на твоём месте натравил на программу DrMemory, подождал пока она отъест память и
сбросил полный дамп выделенных блоков. Портянка будет километрового размера, но за пару
дней ты наверняка выяснишь с точностью до строчки кода где выделяется лишняя память.


Для начала посмотрим как оно себя поведет с пулированием

Монитор памяти должен будет показать кто аллоцирует память теперь

Две данные точки ее больше аллоцировать не будут и в топ всплывет кто то еще


Не может РСС с такой скоростью рести без достаточно больших аллокаций

А большией аллокации как показывает монитор памяти возникают в этих 2 точках.
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39741860
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenПовторю

1) Делетор подменить не получится

unique_ptr  расбросан по тыще мест и везде дилитор я подменить не могу


2) Пулятся char[]

Код по-любому надо перекомпилировать.
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39742191
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jemalloc попробуй
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39743833
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestjemalloc попробуй

Попробывал

export MALLOC_CONF=prof:true,lg_prof_interval:1,lg_prof_sample:17,prof_final:true,prof_prefix:/repos/jprof
export LD_PRELOAD=/usr/local/Cellar/jemalloc/5.1.0/lib/libjemalloc.dylib ./my_programm

ожидаю

<jemalloc>: Leak summary: 267184 bytes, 473 objects, 20 contexts
<jemalloc>: Run jeprof on "jeprof.19678.0.f.heap" for leak detail


однако ничего нет

вызов je_malloc_stats_print из С кода работает и печатает что оно  jemalloc


может кто знает почему не создается .heap  файл ?
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39743840
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenможет кто знает почему не создается .heap  файл ?

Наиболее вероятные причины:
1) Он создаётся не там, где ты думаешь;
2) На место, где он пытается создаться, у тебя нет прав.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39743845
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsemen.s.semenможет кто знает почему не создается .heap  файл ?

Наиболее вероятные причины:
1) Он создаётся не там, где ты думаешь;
2) На место, где он пытается создаться, у тебя нет прав.


А как задать путь ?
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39743847
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sudo my_programm  не помог


<jemalloc>: Leak summary: 267184 bytes, 473 objects, 20 contexts
<jemalloc>: Run jeprof on "jeprof.19678.0.f.heap" for leak detail

в out не вижу

тут что то другое
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39745636
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи эксперты - я это сделал

Однако в результирущем  pdf вместо имен методов - адреса

добавил --add_lib=

все равно адреса

подскажите плиз как заставить в итоговом репорте печаться имена методов
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39745664
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenподскажите плиз как заставить в итоговом репорте печаться имена методов

Собирать с отладочной информацией нужного формата.

А можно пойти другим путём: при сборке сгенерировать map-файл и по нему к адресам искать
имена.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39745670
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsemen.s.semenподскажите плиз как заставить в итоговом репорте печаться имена методов

Собирать с отладочной информацией нужного формата.

А можно пойти другим путём: при сборке сгенерировать map-файл и по нему к адресам искать
имена.


Подскажите - а какие ключики нужны для сборки ?

и как генерировать map-файл ?
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39745700
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semen,

ld ... -M
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39745949
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Wl,-Map=output.map

Добавил в опцию линкера в мап файл - не работает
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746027
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenДобавил в опцию линкера в мап файл - не работает

Теперь надо запустить линкер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746030
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsemen.s.semenДобавил в опцию линкера в мап файл - не работает

Теперь надо запустить линкер.


Говорю же в MakeFile добавляю

EXTRA_LDFLAGS = "-Xlinker -assert -Xlinker -Map=output.map"


Все как тут написали https://stackoverflow.com/questions/7221141/any-difference-between-wl-option-and-xlinker-option-syntax-for-gcc

не работает
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746032
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenне работает

Что "не работает"? Файл output.map не создаётся или какую вообще "работу" ты ожидаешь?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746033
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,


Да output.map не создается

Я указываю у себя точный абсолютный путь

/folder/output.map
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746046
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenДа output.map не создается

После изменения MakeFile ты запускал make?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746050
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsemen.s.semenДа output.map не создается

После изменения MakeFile ты запускал make?


Открываю man ld

-map map_file_path
Writes a map file to the specified path which details all symbols and their addresses in the output image.

Добавляю в конфиги

-Wl,-map /folder/out.map

Запускаю

Makefile:177: Warning: /folder/out.map dont exist
Makefile:177: Warning: /folder/out.map dont exist
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746075
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semen-map map_file_path
Writes a map file to the specified path which details all symbols and their addresses in
the output image.

Это какой ld? У обычного GNU такой опции нет. Если твой линкер хочет "path", так и давай
ему путь. Без названия файла.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пул на базе unique_ptr
    #39746138
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsemen.s.semen-map map_file_path
Writes a map file to the specified path which details all symbols and their addresses in
the output image.

Это какой ld? У обычного GNU такой опции нет. Если твой линкер хочет "path", так и давай
ему путь. Без названия файла.


Это MacOs

ld(1) BSD General Commands Manual ld(1)

NAME
ld -- linker

SYNOPSIS
ld files... [options] [-o outputfile]

DESCRIPTION
The ld command combines several object files and libraries, resolves references, and produces an ouput file. ld can produce a final linked image (executable, dylib, or bundle), or with the -r option, produce another object file. If the
-o option is not used, the output file produced is named "a.out".

Darwin March 7, 2011 Darwin
...
Рейтинг: 0 / 0
25 сообщений из 63, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пул на базе unique_ptr
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]