этот случай называется "ставить лошадь позади телеги". разработчиков много потому что порог вхождения низок. и удобна она тоже чтобы порог был ниже. удешевление производства, поставленного на поток. соя в колбасе. наличие сборщика означает уменьшение тестирования на предмет работы в критичных условиях. если попроще - прога вроде работает стабильно. запускаем в продакшн. через некоторое время в сложно прогнозируемые периоды видим при увеличении нагрузки немереное потребление ресурсов и тормоза - это очень частый, трудно-воспроизводимый случай в системах с gc. почему? gc имеет один из самых низких приоритетов при работе. потенциальная ситуация небрежности программиста нивелируется gc на этапе разработки. при сильной загруженности системы gc просто не работает в штатном для него режиме. как выходят из положения? ну посмотрите на жабовские апп сервера - куча дублирующегося кода, т.к. разработки оформлены как самодостаточное решение, распараллеливание происходит процессами, а не потоками. дублирование (а не мапирование) адресных пространств библиотек и т.д., и т.п. результат - мощнейшие сервера, куча памяти, кластеры.... зато много программистов.
|