論文の概要: Understanding and Finding JIT Compiler Performance Bugs
- arxiv url: http://arxiv.org/abs/2603.06551v1
- Date: Fri, 06 Mar 2026 18:39:33 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-03-09 13:17:46.39865
- Title: Understanding and Finding JIT Compiler Performance Bugs
- Title(参考訳): JITコンパイラのパフォーマンスバグの理解と発見
- Authors: Zijian Yi, Cheng Ding, August Shi, Milos Gligoric,
- Abstract要約: JIT(Just-in-time)コンパイラは、マネージドランタイムを持つ多くの人気のあるプログラミング言語の主要なコンポーネントである。
JITコンパイラにはソフトウェアのバグがあり、以前の作業では機能的なバグを検出するための多くの自動テクニックが開発されている。
JITコンパイラのパフォーマンスバグは、アプリケーションが実行されている間に大幅にパフォーマンスが低下する可能性がある。
- 参考スコア(独自算出の注目度): 11.795888934386175
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Just-in-time (JIT) compilers are key components for many popular programming languages with managed runtimes (e.g., Java and JavaScript). JIT compilers perform optimizations and generate native code at runtime based on dynamic profiling data, to improve the execution performance of the running application. Like other software systems, JIT compilers might have software bugs, and prior work has developed a number of automated techniques for detecting functional bugs (i.e., generated native code does not semantically match that of the original code). However, no prior work has targeted JIT compiler performance bugs, which can cause significant performance degradation while an application is running. These performance bugs are challenging to detect due to the complexity and dynamic nature of JIT compilers. In this paper, we present the first work on demystifying JIT performance bugs. First, we perform an empirical study across four popular JIT compilers for Java and JavaScript. Our manual analysis of 191 bug reports uncovers common triggers of performance bugs, patterns in which these bugs manifest, and their root causes. Second, informed by these insights, we propose layered differential performance testing, a lightweight technique to automatically detect JIT compiler performance bugs, and implement it in a tool called Jittery. We incorporate practical optimizations into Jittery such as test prioritization, which reduces testing time by 92.40% without compromising bug-detection capability, and automatic filtering of false-positives and duplicates, which substantially reduces manual inspection effort. Using Jittery, we discovered 12 previously unknown performance bugs in the Oracle HotSpot and Graal JIT compilers, with 11 confirmed and 6 fixed by developers.
- Abstract(参考訳): JIT(Just-in-time)コンパイラは、マネージドランタイム(JavaやJavaScriptなど)を持つ多くの人気のあるプログラミング言語の主要なコンポーネントである。
JITコンパイラは動的プロファイリングデータに基づいて実行時に最適化とネイティブコードを生成する。
他のソフトウェアシステムと同様、JITコンパイラにはソフトウェアバグがあり、以前の作業では、機能的なバグを検出するための多くの自動化技術が開発されている(つまり、生成されたネイティブコードは、元のコードと意味的に一致しない)。
しかしながら、JITコンパイラのパフォーマンスバグをターゲットにした以前の作業は行われておらず、アプリケーションが実行されている間にパフォーマンスが大幅に低下する可能性がある。
これらのパフォーマンスバグは、JITコンパイラの複雑さと動的な性質のために検出するのが難しい。
本稿では,JITパフォーマンスバグのデミススタマイズに関する最初の研究について述べる。
まず、JavaとJavaScriptの4つの人気のあるJITコンパイラについて実証的研究を行います。
191のバグレポートを手動で分析したところ、パフォーマンスバグの一般的なトリガー、これらのバグが現れるパターン、そしてその根本原因が明らかになりました。
次に、これらの知見により、階層化差分パフォーマンステスト、JITコンパイラのパフォーマンスバグを自動的に検出する軽量なテクニックを提案し、それを Jittery というツールで実装する。
バグ検出能力を損なうことなくテスト時間を92.40%削減するテスト優先化や,偽陽性と重複の自動フィルタリングなど,手作業による検査作業を大幅に削減する。
Jitteryを使って、Oracle HotSpotとGraal JITコンパイラで12の既知のパフォーマンスバグを発見しました。
関連論文リスト
- CrashFixer: A crash resolution agent for the Linux kernel [58.152358195983155]
この作業は、システムレベルのLinuxカーネルバグのベンチマークと、Linuxカーネルで実験を実行するプラットフォームを共有するkGymの上に構築されている。
CrashFixerはLinuxカーネルのバグに適応する最初のLCMベースのソフトウェア修復エージェントである。
論文 参考訳(メタデータ) (2025-04-29T04:18:51Z) - Finding Missed Code Size Optimizations in Compilers using LLMs [1.90019787465083]
我々は,大規模言語モデルと一連の差分テスト戦略を組み合わせた新しいテスト手法を開発した。
当社のアプローチでは,実装に150行未満のコードが必要です。
現在までに、本番コンパイラの24のバグが報告されている。
論文 参考訳(メタデータ) (2024-12-31T21:47:46Z) - Java JIT Testing with Template Extraction [7.714591709931207]
LeJitは、Javaのジャスト・イン・タイム(JIT)コンパイラをテストするためのテンプレートベースのフレームワークである。
私たちは、さまざまな人気のあるJava JITコンパイラをテストするためにLeJitを成功させました。
論文 参考訳(メタデータ) (2024-03-17T17:39:27Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - Directed Test Program Generation for JIT Compiler Bug Localization [3.626013617212667]
Just-in-Time(JIT)コンパイラのバグローカライズ技術は、この目的のために生成されたテストプログラムのセット上で、ターゲットJITコンパイラの実行動作を分析することに基づいている。
本稿ではJITコンパイラのバグローカライゼーションのための新しいテストプログラム生成手法を提案する。
論文 参考訳(メタデータ) (2023-07-17T22:43:02Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。