OK、私は特定のアプリケーションと何とか何とか何とかベンチマークする必要があることを理解していますが、
-Xmx のデフォルトの JVM 設定、デフォルトのガベージ コレクタなどは、ほとんどの典型的な Java プログラムにとって妥当なデフォルトであり、慣用的な Scala コードには適切ではない可能性があります (慣用的な Scala はより多くの「ガベージ」を生成する傾向があるため)。 」)。
そのため、最初に推奨されるオプションを探しています。典型的な Scala プログラムでは、より高い -Xmx 設定が必要ですか? 特定の JVM は他よりも scala に適していますか? 別のガベージ コレクター (-XX:+UseParallelGC と XX:+UseConcMarkSweepGC) は通常、Java の通常のデフォルトよりも、Scala の安全/優れた/高速な推測/ベット/デフォルトですか? Scala コードに関して具体的に考えるべき他のオプションはありますか? また、その方法は?
より多くの一時オブジェクトが生成されるため、通常、デフォルトで「若い」世代により多くのスペースを与える必要がありますか? それとも、より頻繁なガベージ コレクションを強制するために、通常、若い世代に与えるスペースを少なくする必要がありますか? 他の世代はどうですか?
もちろん、特定のアプリ用にこれらのことを調整する必要がありますが、一般的に、典型的な Scala プログラムの場合、私の出発点は Java の場合とは異なる可能性があると推測しています。
特定のアプリケーションでメモリ不足エラーや「GC オーバーヘッドの制限に達しました」というエラーが発生したり、アプリがガベージ コレクションの一時停止に時間がかかりすぎたりすることがあります。オプションを微調整することでこれらの問題をある程度回避できますが、他の経験、一般的な原則、および出発点について聞きたいです。