エラーがスタック情報をプリントアウトすることはできません

  • 現象は、時間を考慮して、エラーが修復する方法にも、オンラインでログインして、いくつかの新聞のヌルポインタ例外を参照してください、しかし、スタック上の情報がない、とすぐにスタック情報は印刷されない例外をキャッチし、コードを書いた人を確認、しかし。外観は実際に彼の、衝撃を与えました。そして、明らかにすでにlogger.error(「xxxxxxxError」、e)は、なぜそれのスタックを印刷しません。
  • クエリデータが見つかった後に: - 異常一致の良好な分布、型を投げる前に、同じ例外が同じ場所で繰り返しスローされた場合JITコンパイラは、異常な最適化され、FastThrowプログラムが対処するために採用されますオブジェクト。利点は、それが、サーバーは、追加のメモリ割り当てにはほとんど影響を持っている、非常に高速で投げ、明白です。コスト情報は、積み重ね表示されていません。
  • ソリューション:
    1. 後方登場最初の珍しいものを見つけるために、もちろん、あなたが時間のノードサーバの再起動に直接行くことができ、原則を知って、情報のスタックがあります。
    2. (推奨されません)。-OmitStackTraceInFastThrow:-XX:このモデルはまた、追加のJVMパラメータを追加し、禁止することができます
  • 添付ファイル:
    1. 公式の説明:
      VMは現在、正しいスタックバックトレースを提供するサーバに、コンパイラのためにすべての「冷たい」内蔵の例外で。
      このような例外が数回投げているときのパフォーマンスのために、この方法は、再コンパイルすることができます。
      再コンパイルした後、コンパイラは、事前に割り当てられた例外使用して高速化戦術を選択することができますスタックトレースを提供しません。
      完全に事前に割り当てられた例外の使用を無効にするには、使用してこの 新しい -XX:-OmitStackTraceInFastThrowフラグ。

       

おすすめ

転載: www.cnblogs.com/cooqer/p/10991050.html