## Memo
## Abstract
非効率な計算につながる設計や実装の欠陥は、ソフトウェアに広く存在する。これらの欠陥は、回避することも発見することも困難である。また、シングルコア・ハードウェアの性能が微々たるものになり、エネルギー制約に対する懸念が高まるにつれて、ますます深刻になっています。性能問題を診断し、非効率の根本原因を指摘する効果的なツールが切実に求められています。性能診断の技術的な現状は予備的なものである。プロファイリングは、最も計算リソースを消費する関数を特定することはできますが、最もリソースを浪費する関数を特定することも、その理由を説明することもできません。性能バグ検出器は、特定のタイプの非効率な計算を特定することはできるが、一般的な性能問題の診断には適していない。機能バグに対しては、統計的デバッグのような効果的な故障診断技術が提案されている。しかし、性能問題に対して有効かどうかは未解決の問題である。本論文では、まず、性能問題が実際のユーザーによってどのように観察され、報告されるかを理解するための実証研究を行う。我々の研究は、統計的デバッグが性能問題の診断に自然に適合することを示す。性能問題はしばしば比較ベースのアプローチによって観察され、良い入力と悪い入力の両方とともに報告される。次に、3つの異なる述語と2つの異なるタイプの統計モデルを含む、統計的デバッグにおける異なるデザインポイントを徹底的に調査し、どのデザインポイントがパフォーマンス診断に最適かを理解する。最後に、性能バグのいくつかのユニークな性質により、サンプリング技術が、診断待ち時間を延長することなく、実行時性能診断のオーバーヘッドを低減することができることを研究する。