Цитата
Браво, вы изобрели велосипед!
Зато у меня хватило мозгов изобрести его самостоятельно. Кстати, дополнение в виде применения специального низкоприоритетного процесса для поддержки запаса мне нигде не встречалось. Если дадите ссылочку на такое решение - буду премного благодарен.
Цитата
А определять тестовыми прогонами оптимальную сетку нарезки для блоков фиксированной длины это гемор почище чистых malloc-ов.
Сетка задана изначально (у меня обычно применяется шаг 1.5). Начальное количество при инициализации менеджедра - вот это да, это опытным путем. Но совсем не обязательно. На самом деле, даже задание нулевых размеров приведет в начале к тормозам системы (потому что все время будет выполняться "аварийный" режим по пункту 6), пока не устаканится некоторое среднее значение с запасом (определяется порогами в низкоприоритетном процессе).
В реальной жизни профилирование весьма несложно. Но зато дает отличные результаты.
Цитата
Но тут еще есть нюансик.
Для таких приложений как Ethernet-а не нужно выделять непрерывные области, там с успехом применяеться DMA по связным спискам.
Да, это ньюанс. Но он связан с тем, что DMA уже заточен под список. А часто это еще и полностью своя отдельная область памяти, в которой он (DMA) может разгуляться. Так вот пусть там и гуляет, нефиг туда своими менеджерами лезть
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин