Мой вопрос, возможно, плохо сформулирован и проистекает из моего любительского понимания управления памятью.
Моя проблема заключается в следующем: у меня есть Perl-скрипт, который разветвляется много раз.Как я понял из страницы ветки в perldoc, копирование при записи осуществляется.Затем каждый из детей вызывает system()
, снова разветвляясь, чтобы вызвать внешнюю программу.Данные из внешней программы считываются обратно в дочерний процесс и выгружаются в виде сохраняемого файла, который должен быть собран и обработан родителем после того, как все дочерние объекты завершены.
Меня беспокоит моя воспринимаемая изменчивость этой ситуации.Подумайте, что я вижу в своем наихудшем сценарии: для каждого из детей, как только поступают новые данные, вся память копирования при записи становится, ну, в общем, копируемой.Если это так, я собираюсь быстро столкнуться с проблемами памяти после создания нескольких вилок.
Но в качестве альтернативы, копирование-при-записи копирует только самый маленький кусок памяти, который содержит необходимые данные?Тогда что это за кванты памяти?Как устанавливается его размер?
Я не уверен, зависит ли специфика того, о чем я спрашиваю, от языка или какого-либо процесса более низкого уровня.