почему команда `system ()` в R очень интенсивно использует память? - PullRequest
0 голосов
/ 08 ноября 2018

Рассмотрим:

> setwd('~/tmp/')
> list.files()
[1] "bar"    "foo"    "foobar"
> system("ls")
Warning messages:
1: In system("ls") : system call failed: Cannot allocate memory
2: In system("ls") : error in running command

происходит, когда у меня около 9 ГБ ОЗУ показывает неиспользуемый. Мне интересно, почему функция system() так интенсивно использует память. Если в случае, если вы хотите мой sessionInfo(), то извините как:

sessionInfo()
Error in system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE) : 
  cannot popen '/usr/bin/which 'uname' 2>/dev/null', probable reason 'Cannot allocate memory'

Так что именно поэтому я и задаю этот вопрос. Эта интенсивная операция с памятью серьезно ограничивает способность R подключаться к любой другой программе. В моем случае с челюстью я пытаюсь использовать htmlwidgets::saveWidget(), который проверяет наличие pandoc, используя system('which pandoc'), и в конечном итоге терпит неудачу.


sessionInfo, используя предложение @ hrbmstr в ванильном режиме:

> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.1 LTS

Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...