11

在有关Scala value classes的文档中,提到了需要为 value class 实际分配实例的三种情况:

分配摘要

值类实际上在以下情况下被实例化:

  1. 值类被视为另一种类型。
  2. 一个值类被分配给一个数组。
  3. 进行运行时类型测试,例如模式匹配。

当需要实例化值类时,编译器或语言功能中是否存在会产生警告的设置?

4

1 回答 1

1

不,目前没有。

然而,这种微优化很少值得费心。

如果您有一些非常非常热门的代码并且需要尽可能优化它,那么只需尝试一些事情并重新进行基准测试。

如果代码足够热,JIT 编译器将在很多时候更改您的代码在机器级别上所做的事情。

分配值类的开销通常甚至无法衡量,除非它是线程唯一在做的事情。请参阅例如https://groups.google.com/forum/#!topic/scala-user/XdQnbcs2SRM了解一些无法衡量价值类别分配的基准。

于 2015-08-17T14:19:33.120 回答