Я рекомендую не использовать опцию -l
.
В принципе, -l
кажется лучше -j
.-j
говорит, начни это много заданий.-l
говорит, убедитесь, что запущено столько заданий.Часто это почти одно и то же, но если у вас есть задания, связанные с вводом / выводом, это еще одна странность, тогда -l
должно быть лучше.
Тем не менее, концепция средней нагрузки немного сомнительна.Это обязательно выборка того, что происходит в системе.Таким образом, если вы запустите make -j -l N
(для некоторых N
) и у вас будет хорошо написанный make-файл, то make немедленно запустит большое количество заданий и исчерпает файловые дескрипторы или память до того, как даже первый пример загрузки системымогут быть приняты.Кроме того, учет среднего значения загрузки отличается в разных операционных системах, а в некоторых малоизвестных вообще его нет.
На практике вы также будете хорошо использовать -j
и будете иметь меньше головной боли,Чтобы добиться большей производительности от сборки, настройте ваши make-файлы, поиграйтесь с опциями компилятора и используйте ccache или аналогичный.
(Я подозреваю, что первоначальная причина для опции -l
проистекает из того времени, когда несколько процессоров былиредко и ввод / вывод был очень медленным.)