LINUX.ORG.RU

История изменений

Исправление slackwarrior, (текущая версия) :

Или не надо, или не придется :) Т.к. некоторый переиспользуемый пул — это чаще всего тривиально. Выделяется не произвольными, а заданными блоками под заранее известные вещи — «ноды» или «хэндлы» известных ресурсов (графические движки, например, можно так же программировать, просто муторно — «поддерживается вот стока объектов при таком объеме памяти, хочешь больше? правь конфиг сборки, но на меньшем объеме памяти не запустится, ибо нефиг» — да и буферы видеопамяти похожим образом выделяются, юзеру возвращается только хэндл, просто позволена слишком большая вольница с разметкой буферов в рантайме :)).

Ну и вот... в «пуле» ничего не удаляется, просто помечается как свободное.

Но чаще дешевле обсчитать все что требует обсчетов заранее — например, даже ракетам некая БЦВМ для приближения некой целевой функции не факт чо нужна (раньше-то обходились с известным набором оговорок и компромиссов), достаточно посчитанного хоть на логарифмических линейках «аналогового вычислителя» с обратной связью, «логика» в который зашита паяльником («лети вон за тем зайчиком от лазера»), а система управления вся вообще на земле в трех грузовиках или в «центре управления» с мощным передатчиком, если модель обсчета адекватная :)

А у встройки «задачи» вообще могут быть одним целым с OS (или тем что ее заменяет) в общем бинаре, каждая со своими заранее заданными ресурсами. Т.е. «произвольницы» общего назначения не предусмотрено вообще :)

Отказ от дрочки памяти взад-назад просто исключает предпосылки к «обычным» проблемам плохого проектирования — подпирание сложными (но недостаточно «умными») распределителями ресурсов «общего назначения» — т.е. того, что нельзя адекватно решить простыми средствами в общем случае, только в типовом наборе тривиальных, а для заранее известных случаев применения — там слишком много оверхэда, который можно выкинуть и заменить более простыми средствами вроде заранее посчитанного всего что можно заранее посчитать :)

Исходная версия slackwarrior, :

Или не надо, или не придется :) Т.к. некоторый переиспользуемый пул — это чаще всего тривиально. Выделяется не произвольными, а заданными блоками под заранее известные вещи — «ноды» или «хэндлы» известных ресурсов (графические движки, например, можно так же программировать, просто муторно — «поддерживается вот стока объектов при таком объеме памяти, хочешь больше? правь конфиг сборки, но на меньшем объеме памяти не запустится, ибо нефиг» — да и буферы видеопамяти похожим образом выделяются, юзеру возвращается только хэндл, просто позволена слишком большая вольница с разметкой буферов в рантайме :)).

Ну и вот... в «пуле» ничего не удаляется, просто помечается как свободное.

Но чаще дешевле обсчитать все что требует обсчетов заранее — например, даже ракетам некая БЦВМ для приближения некой целевой функции не факт чо нужна (раньше-то обходились с известным набором оговорок и компромиссов), достаточно посчитанного хоть на логарифмических линейках «аналогового вычислителя» с обратной связью, «логика» в который зашита паяльником («лети вон за тем зайчиком от лазера»), а система управления вся вообще на земле в трех грузовиках или в «центре управления» с мощным передатчиком, если модель обсчета адекватная :)

А у встройки «задачи» вообще могут быть одним целым с OS (или тем что ее заменяет) в общем бинаре, каждая со своими заранее заданными ресурсами. Т.е. «произвольницы» общего назначения не предусмотрено вообще :)

Отказ от дрочки памяти взад-назад просто исключает предпосылки к «обычным» проблемам плохого проектирования — подпирание сложными (но недостаточно «умными») распределителей ресурсов «общего назначения» — т.е. того, что нельзя адекватно решить простыми средствами в общем случае, только в типовом наборе тривиальных, а для заранее известных случаев применения — там слишком много оверхэда, который можно выкинуть и заменить более простыми средствами вроде заранее посчитанного всего что можно заранее посчитать :)