twitterのobjectsize計測するやつ

メモ

alias objectsize='screpl com.twitter.common%objectsize%0.0.10 "twttr at http://maven.twttr.com/"'

https://github.com/twitter/commons/blob/20fabe1bb0/src/java/com/twitter/common/objectsize/ObjectSizeCalculator.java

べつにscrepl経由で使わなくてもいいけど。



普通にbuild.sbtに追加するなら以下

resolvers += "twitter" at "http://maven.twttr.com/"

libraryDependencies += "com.twitter.common" % "objectsize" % "0.0.10"

同じ固定のオブジェクト返すなら、valよりdefのほうがフィールド(つまりオブジェクトのポインタを格納する領域)が生成されない分、1インスタンスあたりのメモリ使用量少ないですよ、とかそういうのを確かめるのに使えます

Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05).
Type in expressions to have them evaluated.
Type :help for more information.

scala> class A{def a = "a"}
defined class A

scala> com.twitter.common.objectsize.ObjectSizeCalculator.getObjectSize(new A)
res0: Long = 16

scala> class B{val b = "b"}
defined class B

scala> com.twitter.common.objectsize.ObjectSizeCalculator.getObjectSize(new B)
res1: Long = 64