2017-10-25 7 views
4

私はいくつかの分析を実行し、すべての24x8 ggplotをリストに保存しました。私は、オブジェクトのサイズを検査する場合R:object.size()がメモリ使用にどのように関係するかを理解する

は私が取得:

print(object.size(output_list), units = "Mb") 
115.3 Mb 

私は、オブジェクトが周りに650 MBの取りRDS-ファイルなどのオブジェクトを保存する場合。私はサイズのこれらの大きな違いを取得する理由

library(pryr) 
mem_used() # Note: In example I only have this object in the R memory 
28.2 GB 

私はわからない、と私は、ウェブ上の明確な、について説明を見つけることができませんでした:私はオブジェクトのメモリ使用量を調べると

は私が取得しますまだ。この一見小さな物体がなぜそんなに多くのメモリを占めるのか理解できますか?

すべてのプロットがすべてのデータポイントをplotDataに保存しているからです。しかし、それもオブジェクトに影響しません。サイズ?私はまたそれが木構造のためであると考えました。 data.treeパッケージでは、各ノートが個々の環境を保存します。ヘルプを1として

+0

関数 'mem_used()'は、Rによって使用されるメモリの合計量を返します。あなたのRセッションの唯一のオブジェクトは 'output_list'ですか? –

答えて

1

mem_used合計NcellsとVcells - Vcells(ベクトルが使用するメモリ)とNcells(他のすべてが使用するメモリ))。

これは私のラップトップで正常に動作するようです。

ベストと同様に、より良い考えを得ることができます。

rm(list = ls()) 
m <- 1:100000000 

object_size(m) 
#400 MB 

mem_used() 
#454 MB 

gc() 
#   used (Mb) gc trigger (Mb) max used (Mb) 
#Ncells 753450 40.3 1442291 77.1 1442291 77.1 
#Vcells 51417867 392.3 121970165 930.6 101419240 773.8 
関連する問題