Посмотрел
MoKo 10.10.2014 04:49
У нас libgc собирется с конфигом "по умолчанию", заявлено при этом у них так:
# define MAX_HEAP_SECTS 512 /* Roughly 4GB */
Почему по факту эти 512 секций дают всего ~256Mb - сложно сказать. У меня кстати падало на 297596Кб по musage, несколько больше, чем 256Mb. По размеру свободной памяти в логе musage видно, что память у OS действительно выделяется кусками по 8Mb, но таких кусков было ~36, а не 512 (в отладчике же видно, что использованных секций на момент падения 512). Похоже на какую-то багу в libgc.
Если пересобрать gc с -DLARGE_CONFIG (добавляется в NT_STATIC_THREADS_MAKEFILE), то лимит получается сильно больше, во всяком за гигабайт у меня размер аллоцированной памяти успешно переваливал (1130024Кб по musage). Память выделяется кусками по 16Mb.
Но неудобно, что через переменную эти настройки не меняются, только при сборке libgc.
Еще интересно, что парсер, собранный под cygwin, такой проблемы не имеет - успешно дорастает до гигабайта с лимитом по умолчанию в libgc. Правда работает медленнее. :) Но зато на ~15% меньше памяти потребляет...
- Потребление памяти, Zord 15.09.2014 11:17
- Та же проблема, Саян 20.09.2014 12:09
- Ответ, moko [M] 22.09.2014 18:25
- Ответ, MoKo 16.09.2014 11:26
- Кстати, G_Z [M] 15.09.2014 22:12
- Ответ, moko [M] 16.09.2014 13:50
- Ответ, G_Z [M] 16.09.2014 14:15
- Ответ, moko [M] 16.09.2014 14:57
- Не помогло, G_Z [M] 09.10.2014 15:46
- Посмотрел, MoKo 10.10.2014 04:49
- Печально, G_Z [M] 10.10.2014 20:46 / 10.10.2014 20:46
- Ответ, 11.10.2014 14:40
- Ответ, G_Z [M] 11.10.2014 17:15
- Ответ, MoKo 11.10.2014 23:09
- Соласен, G_Z [M] 17.09.2014 11:10
- Померять, что жрет память. Использовать сборку мусора (см. memory:compact). (-), Sumo [M] 15.09.2014 11:39