Scala 値クラスに関するドキュメントでは、値クラスに実際にインスタンスを割り当てる必要がある場合が 3 つあります。
割り当ての概要
値クラスは、次の場合に実際にインスタンス化されます。
- 値クラスは別の型として扱われます。
- 値クラスが配列に割り当てられます。
- パターン マッチングなどの実行時の型テストを行う。
コンパイラまたは言語機能に、値クラスをインスタンス化する必要があるときに警告を生成する設定はありますか?
Scala 値クラスに関するドキュメントでは、値クラスに実際にインスタンスを割り当てる必要がある場合が 3 つあります。
割り当ての概要
値クラスは、次の場合に実際にインスタンス化されます。
- 値クラスは別の型として扱われます。
- 値クラスが配列に割り当てられます。
- パターン マッチングなどの実行時の型テストを行う。
コンパイラまたは言語機能に、値クラスをインスタンス化する必要があるときに警告を生成する設定はありますか?
いいえ、現在はありません。
ただし、この種のマイクロ最適化を気にする価値はほとんどありません。
非常にホットなコードがあり、可能な限り最適化する必要がある場合は、いくつか試して再ベンチマークしてください。
JIT コンパイラは、コードが十分にホットな場合、多くの場合、マシン レベルでコードが行っていることを変更します。
値クラスを割り当てるオーバーヘッドは、スレッドが実行する唯一のことでない限り、測定できないことがよくあります。値クラスの割り当てが測定できないベンチマークについては、https ://groups.google.com/forum/#!topic/scala-user/XdQnbcs2SRM などを参照してください。