R从Postgresql

时间:2019-02-02 22:37:55

标签: r postgresql ram

我在我的R代码中发现了奇怪的行为。为简单起见,它减少到只有几行。它具有以下结构:我加载库,建立到PostgreSQL的连接,然后读取整个表中从PostgreSQL的一个变量。之后,我用rm()删除变量,然后使用gc()。如果我检查存储器利用率(mem_usage()lineprof())的对象少取<1GB在存储器中。如果我运行在Ubuntu 16.4 VM代码,我还可以看到htopatop分配给我的RSession的RAM。这是大约8 GB。使用gc()会释放大约1 GB的RAM,但不能完全改善这种情况。只有在我非常满意Rsession的情况下,如此大的RAM分配才消失了。我可以从Rstudio和Terminal运行代码。图片是一样的。这是一个代码段:

con <- establishDBConnection(databasename, hostname, portnumber,   username, passwortdb)
var <- dbGetQuery(con, paste0("SELECT * FROM ", myschema, ".", table, ";"))
rm(var)
gc()

我知道一次读取表格不是一个好习惯。

我想了解1)为什么1 GB的对象分配8 GB的额外内存,以及2)如何在不使会话安静的情况下释放RAM。

0 个答案:

没有答案