Ответ 1
Увеличение этого числа, конечно, "возможно"... но оно также стоит немного (добавив к памяти фиксированный объем памяти R).
Я не установил этот предел, но я уверен, что это также означало напоминание о том, что useR немного "очистит" в своем сеансе R, т.е. Не загружает пространства имен пакетов без необходимости. Я еще не могу представить, что вам нужно> 100 пакетов | пространства имен, загруженные в ваш сеанс R. OTOH, некоторые пакеты в настоящее время имеют множество зависимостей, поэтому я согласен, что это, по крайней мере, может происходить случайно чаще, чем в прошлом.
Реальное решение, конечно же, будет улучшением кода, которое начинается с относительно небольшого числа структур DLLinfo (скажем, 32), а затем при необходимости выделяет больше партий (размером 32).
Патчи к источникам R (разработка сундука в подрывной деятельности на https://svn.r-project.org/R/trunk/) приветствуются!
---- добавлено 26 января 2017 года. Между тем у нас был публичный отчет об ошибках, предлагаемый патч (который был недостаточно хорошим: всегда существует ограниченное ОС ограничение количества открытых файлов), и сегодня этот отчет об ошибке был закрыт членом R core @TomasKalibera, который внедрил новый код, где максимальное количество загружаемых DLL установлено на
pmax(100, pmin(1000, 0.6* OS_dependent_getrlimit_or_equivalent()))
и так далее на Windows и Linux (и еще не проверены, но "почти наверняка" macOS), предел должен быть значительно выше, чем раньше.
----- Обновление № 2 (написано 5 января 2018 года):
В октябре 17 вышеупомянутое изменение было сделано более автоматическим с последующим фиксацией источников (версии разработки R - только!)
r73545 | kalibera | 2017-10-12 14:41:20
Увеличьте количество DLL, которые могут быть загружены по умолчанию. При необходимости увеличьте мягкий предел для открытых файлов.
и на странице справки ?dyn.load
(https://stat.ethz.ch/R-manual/R-devel/library/base/html/dynload.html) теперь упоминается ulimit -n <num_open_files>
( раздел Примечание близко к основанию).
Таким образом, вы можете рассмотреть возможность использования версии разработки R до тех пор, пока она не станет "основным потоком" в апреле.
Кроме того, вы выполняете (в терминале/оболочке)
ulimit -n 2048
и затем запустить R с этого терминала. Томас Калибера упомянул об этом для работы с macOS.