在关于Scala值类的文档中,提到有三种情况需要将值类实际分配给实例:
配置概述
值类在以下情况下实际实例化:
值类被视为另一种类型。
- 一个赋值类给一个数组。
- 执行运行时类型测试,例如模式匹配。
在编译器或语言特性中是否有一个设置,当需要实例化一个值类时,会产生一个警告?
不,目前没有
然而,很少值得为这种微优化而烦恼。
如果你有一些非常非常热的代码,你需要尽可能地优化它,那么就尝试一些事情并重新基准测试。
如果你的代码足够热的话,JIT编译器会在很多时候改变你的代码在机器级做什么。
分配一个值类的开销通常是无法测量的,除非它是线程唯一在做的事情。参见https://groups.google.com/forum/#!