|
|
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНикто не отменял фрагментацию кучи, при которой память растет, а утечки нет. Вот вот Поэтому и родилась идея посмотреть как ведет себя RSS если два участка памяти активно аллоцирующие char[] и кладущие его в std::unique_ptr заменить пулированием. Думаю что это и производительность может поднять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 23:08 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Проблема тока в том что там этот unique_ptr из данного класса передается еще в 1000 мест и просто подменить Deleter не вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 23:09 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenПулирование - это просто способ проверить поведение если убрать эту аллокацию - деаллокацию. Как я уже сказал выше: пул автоматически ведёт стандартный менеджер памяти. Твои пляски с бубном просто повторят его действия, но ничего не изменят. Инструменты в том топике, кстати, неплохие подсказали. Но они тоже вряд ли помогут. Так что придётся-таки ручками и головой понимать почему в россии не делают опенсорса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 23:17 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКак я уже сказал выше: пул автоматически ведёт стандартный менеджер памяти. Твои пляски с бубном просто повторят его действия, но ничего не изменят. Это не так Отдавать в конкретную точку заранее преаллоцированные char[] или брать их из хипа - это 2 разные вещи Dimitry SibiryakovТак что придётся-таки ручками и головой понимать почему в россии не делают опенсорса. Завязывай хамить. Я с тобой тут предельно уважительно общаюсь - но могу и по другому - боюсь правда опять забанят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2018, 23:24 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenОтдавать в конкретную точку заранее преаллоцированные char[] или брать их из хипа - это 2 разные вещи Одинаковые. В хипе точно такие же цепочки "преаллоцированных char[]" из которых ММ выбирает самую подходящую. Я бы на твоём месте натравил на программу DrMemory, подождал пока она отъест память и сбросил полный дамп выделенных блоков. Портянка будет километрового размера, но за пару дней ты наверняка выяснишь с точностью до строчки кода где выделяется лишняя память. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 01:21 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovsemen.s.semenОтдавать в конкретную точку заранее преаллоцированные char[] или брать их из хипа - это 2 разные вещи Одинаковые. В хипе точно такие же цепочки "преаллоцированных char[]" из которых ММ выбирает самую подходящую. Я бы на твоём месте натравил на программу DrMemory, подождал пока она отъест память и сбросил полный дамп выделенных блоков. Портянка будет километрового размера, но за пару дней ты наверняка выяснишь с точностью до строчки кода где выделяется лишняя память. Для начала посмотрим как оно себя поведет с пулированием Монитор памяти должен будет показать кто аллоцирует память теперь Две данные точки ее больше аллоцировать не будут и в топ всплывет кто то еще Не может РСС с такой скоростью рести без достаточно больших аллокаций А большией аллокации как показывает монитор памяти возникают в этих 2 точках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 07:17 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenПовторю 1) Делетор подменить не получится unique_ptr расбросан по тыще мест и везде дилитор я подменить не могу 2) Пулятся char[] Код по-любому надо перекомпилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2018, 11:09 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
jemalloc попробуй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 01:12 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
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 файл ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 20:06 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenможет кто знает почему не создается .heap файл ? Наиболее вероятные причины: 1) Он создаётся не там, где ты думаешь; 2) На место, где он пытается создаться, у тебя нет прав. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 20:16 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovsemen.s.semenможет кто знает почему не создается .heap файл ? Наиболее вероятные причины: 1) Он создаётся не там, где ты думаешь; 2) На место, где он пытается создаться, у тебя нет прав. А как задать путь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 20:20 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
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 не вижу тут что то другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 20:23 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Товарищи эксперты - я это сделал Однако в результирущем pdf вместо имен методов - адреса добавил --add_lib= все равно адреса подскажите плиз как заставить в итоговом репорте печаться имена методов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 21:36 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenподскажите плиз как заставить в итоговом репорте печаться имена методов Собирать с отладочной информацией нужного формата. А можно пойти другим путём: при сборке сгенерировать map-файл и по нему к адресам искать имена. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 23:05 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovsemen.s.semenподскажите плиз как заставить в итоговом репорте печаться имена методов Собирать с отладочной информацией нужного формата. А можно пойти другим путём: при сборке сгенерировать map-файл и по нему к адресам искать имена. Подскажите - а какие ключики нужны для сборки ? и как генерировать map-файл ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 23:36 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, ld ... -M ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 03:08 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
-Wl,-Map=output.map Добавил в опцию линкера в мап файл - не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 13:00 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenДобавил в опцию линкера в мап файл - не работает Теперь надо запустить линкер. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 14:14 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
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 не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 14:21 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenне работает Что "не работает"? Файл output.map не создаётся или какую вообще "работу" ты ожидаешь? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 14:24 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Да output.map не создается Я указываю у себя точный абсолютный путь /folder/output.map ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 14:26 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
semen.s.semenДа output.map не создается После изменения MakeFile ты запускал make? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 14:43 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 14:50 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 15:12 |
|
||
|
Пул на базе unique_ptr
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 16:06 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39746030&tid=2017688]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
206ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 571ms |

| 0 / 0 |
