ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
823361 Топик полностью
fk0, легенда (13.03.2018 00:03, просмотров: 34) ответил Evgeny_CD на Обзорная статья [Dynamic Memory Allocation and Fragmentation in C and C++] ->
Ересь отчасти. Memory pools с блоками разных размеров НЕТ никакой нужды делать вручную. Любой нормальный современный аллокатор внутри себя именно это и делает АВТОМАГИЧЕСКИ. Например аллокатор им. Doug Lea. Поэтому разговоры мол "malloc плохой, а в нашей замечательной ОС есть пулы вместо malloc" -- обман. И про фрагментацию тоже. Дают говённую libc с first fit стратегией аллокации потом рассказывают про фрагментацию. А в опенсоурсных поделках почему-то её нет. Потому, что там не first fit, а те же пулы внутри, или на худой конец best fit (для AVR). Лучше бы написали про "коэфициент полезного использования памяти". Например с аллокатором dlmalloc он падает ниже 50% как раз из-за фрагментации, но не "неработает вообще". И про вред глобального мьютекса тормозящего всю систему, особенно если там полно C++ кода с STL-контейнерами.
[ZX]