Intellijデバッガーが遅い:メソッドブレークポイントがデバッグを劇的に遅くする可能性があります


87

intellijデバッガーを起動すると、スクリーンショットに表示されているヒントが表示されます。デバッガーの起動には時間がかかります。この問題を解決する方法は?ここに画像の説明を入力してください

回答:


186

メソッドブレークポイントをオフにします。Run |を介してすべてのブレークポイントを確認できます。ブレークポイントの表示(Ctrl-Shift -F8)


25
しかし、確かにブレークポイントを削除すると、デバッグの目的が損なわれますか?または私は何かが欠けています。
arush436 2015年

16
@ arush436「メソッドブレークポイント」(!=通常のブレークポイント)が必要な状況の数は非常に限られています。
ロビン

28
そして、メソッドブレークポイントと通常のブレークポイントの違いは何ですか?
jrahhali 2017


4
さまざまなタイプのブレークポイントへの更新されたリンクは次のとおりです。
キャメロン

12

IDEA 2017.1では、エミュレートされたメソッドブレークポイントが導入されました。https//www.jetbrains.com/help/idea/using-breakpoints.html#method_breakpoint パフォーマンスを低下させることなくメソッドブレークポイントを使用できます。デフォルトで有効になっています。


このメッセージが表示された場合は、(私のように)ポップアップで[エミュレーションのキャンセル]をクリックした可能性があります。再度有効にするには、show-breakpointsのブレークポイントに移動し、[エミュレート]をオンにします。
キャプテンマン

7

JetBrainsチームから:「メソッドブレークポイントは、JVM設計のためにデバッガーの速度を大幅に低下させ、評価にコストがかかります。メソッドブレークポイントを削除し、通常の行ブレークポイントの使用を検討してください。」もっと見る

簡単に言うと、根本的な問題は、JPDAメソッド入力およびメソッド終了機能を使用してメソッドブレークポイントを実装することであるように思われます。この実装は、イベントを毎回起動するようにJVMを必要とする任意のスレッドが入る任意の方法を、いつどのスレッドが終了する任意の方法を。


7

ここに画像の説明を入力してください

デバッグパネルからメソッドブレークポイントをオフにします。これがスクリーンショットです。


5

コード内で赤いひし形のアイコン(赤い円ではない)を探します。これらはメソッドのブレークポイントを表しています。ほとんどの場合、Kotlinのget()/ set()メソッドで設定します。


0

私が従う実用的なアドバイス:1。アプリの起動中にすべてのブレークポイントをミュートします。2。そのフローをデバッグしている間のみブレークポイントを有効にします。

もちろん、アプリの起動中に発生する何かをデバッグしようとしている場合は役に立ちません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.