object.sizeを使うと、ベクトルやデータフレームなどのオブジェクトのメモリ使用量を確認することができるのだが。。試しに、ちょっと実験してみたら不思議なことが起こった。
まず、サンプルのベクトルとデータフレームを用意する。
> v.x <- c(1,2,3)
> v.x1 <- c("a","b","c")
>
> v.y <- c(1,2,30)
> v.y1 <- c("A","B","C")
>
> df.x <- data.frame(id = v.x, name = v.x1)
> df.y <- data.frame(id = v.y, name = v.y1)
object.sizeでメモリ使用量を調べる。
> object.size(v.x)
72 bytes
> object.size(v.x1)
216 bytes
> object.size(df.x)
1360 bytes
> object.size(v.y)
72 bytes
> object.size(v.y1)
216 bytes
> object.size(df.y)
1360 bytes
>
ふむふむ。なるほどー。
やっぱり、数字(v.x)よりも文字列(v.x1)の方がメモリ食ってるな。
てか、72 bytes(v.x)のベクトルと216(v.x1)のベクトルでデータフレーム(df.x)を作ると、メモリが1360 bytesに跳ね上がるのかー
v.x1とv.y1の結果を見ると、小文字と大文字でメモリ使用量に変化はなさそう。
あと、v.xとv.yもメモリ使用量が変わっていないので、数字が一桁から二桁に増えたのが混ざってもあまり影響はないのかー。ちょっと、桁数をすごい増やしてみるか。
> v.z <- c(1,2,3000000000000000000000000000)
> object.size(v.z)
72 bytes
あれ??桁数すごい増やしたけど全然メモリ増えない!マジで!
なんでだろ??
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。