LINUX.ORG.RU

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

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

Что-то вы спорите на пустом месте. Разве не понятно, что GC vs ручное управление vs подсчёт ссылок - это всегда компромисс. А точнее:

GC используется, когда нужно быстро написать код, и чтобы он работал долго, дольше, чем идёт очистка памяти, оной при этом много или её можно наращивать, а сервис дублировать и балансировать нагрузку на дубликаты сервиса. При этом достигается очень высокая скорость написания программы (по сравнению с ручным управлением), в ущерб потреблению памяти. Но это и не будет проблемой, т.к. цена разработчика выше нескольких сот мегов рамы.

Подсчёт ссылок - когда память нужно экономить и сервис должен работать в узких рамках потребления памяти, при этом не будет происходить регулярных созданий/удалений объектов, а программист должен заботиться о переиспользование единожды созданных структур данных на протяжении работы сервиса/программы.

Ручное выделение памяти - когда программа не сложная, либо когда человеческие ресурсы не ограничены и стоят того, чтобы жёстко экономить память и работу CPU, минимизировать задержки на выделение памяти под структуры (игровые сервера, котировки, UDP сервисы). Особенно, когда это происходит не часто и в исключительно алгоритмических задачах, либо на жутко слабом CPU и очень медленной памяти.

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

Что-то вы спорите на пустом месте. Разве не понятно, что GC vs ручное управление vs подсчёт ссылок - это всегда компромисс. А точнее:

GC используется, когда нужно быстро написать код, и чтобы он работал долго, дольше, чем идёт очистка памяти, оной при этом много или её можно наращивать, а сервис дублировать и балансировать нагрузку на дубликаты сервиса. При этом достигается очень высокая скорость работы программы (по сравнению с ручным управлением), в ущерб потреблению памяти. Но это и не будет проблемой, т.к. цена разработчика выше нескольких сот мегов рамы.

Подсчёт ссылок - когда память нужно экономить и сервис должен работать в узких рамках потребления памяти, при этом не будет происходить регулярных созданий/удалений объектов, а программист должен заботиться о переиспользование единожды созданных структур данных на протяжении работы сервиса/программы.

Ручное выделение памяти - когда программа не сложная, либо когда человеческие ресурсы не ограничены и стоят того, чтобы жёстко экономить память и работу CPU, минимизировать задержки на выделение памяти под структуры (игровые сервера, котировки, UDP сервисы). Особенно, когда это происходит не часто и в исключительно алгоритмических задачах, либо на жутко слабом CPU и очень медленной памяти.