## Memo
## Abstract
ガベージコレクタの性能と正しさのためのデバッグは、悪名高く難しい。システムエンジニアが利用できるツールの中で、最も強力なツールの1つであるトレースのサポートは、ほとんどのガベージコレクタに欠けています。その代わりに、エンジニアはカウント、サンプリング、ロギングに頼らなければならない。カウントとサンプリングは統計的分析に限定され、一方ロギングはハードワイヤード・メトリクスに限定される。この結果、認知的な摩擦が生じ、技術革新と最適化が抑制されます。
我々は、トレースがGCパフォーマンスのデバッグに適していることを実証する。MMTkのモジュール設計を活用して、強力なVMとコレクタニュートラルなツールを提供します。我々は、トレースが以下のことを可能にすることを発見しました:トレースポイントの安価な挿入-わずか14行のコードと測定可能なランタイムオーバーヘッドなし、トレースロジックからのトレースポイントの宣言の切り離し、実行中のバイナリの質問を可能にする一方で、微妙なパフォーマンス後退を検出することができる高忠実度の測定。
我々のツールは、マルチスレッドGCにおけるスケーラビリティの低さや、アロケーションシーケンスにおけるロック競合など、いくつかのクラスの性能バグを鮮明に浮き彫りにする。これらの可観測性は、コレクタにおける最適化の機会を発見し、さらにはアプリケーションプログラムにおけるバグを明らかにする。
我々は、GCの設計者と実践者のための強力なツールとしてのトレースを紹介します。トレースは、見逃していた機会を発見し、新しいアルゴリズムや新しいエンジニアリングの実践につながります。