有没有办法找出scala中对象占用的内存/大小? 提前谢谢你的回复。
答案 0 :(得分:1)
查看 java.lang.instrumentation 包
您可以执行以下操作:
import java.lang.instrument.Instrumentation;
object ObjectSize {
def fetchObjectSize(Object obj) = instrumentation.getObjectSize(obj)
}
答案 1 :(得分:1)
Scala在JVM上运行,JVM是支持Java的运行时系统。 Scala对象在运行时被编译为JVM对象,并且在运行时与Java对象无法区分。例如,请参阅https://www.scala-lang.org/上的“坚果壳中的Scala”简介:
SEAMLESS JAVA INTEROP
Scala在JVM上运行,因此Java和Scala堆栈可以自由混合以实现完全无缝集成。
...
Scala类最终是JVM类。您可以从Scala透明地创建Java对象,调用其方法并从Java类继承。同样,Java代码可以引用Scala类和对象。
因此,就本问题而言,任何Java答案都同样适用于Scala。
请参阅
(除非您指的是像Scala.js这样的非标准Scala运行时?在这种情况下,您应该寻找适用于底层运行时的答案,例如How to get the size of a JavaScript object?)
答案 2 :(得分:1)