特定の条件下ですべてのパブリック メソッド呼び出しを追跡したいと考えています。しかし、この追跡によってシステム全体のパフォーマンスができるだけ損なわれないようにしたいと考えています。
指定されたスレッドに対してのみポイントカットを動的に「オン」にして実行する方法が必要であり、このオン (およびオフ) をコードから動的に呼び出すことができる必要があります。
つまり、私の Java コードが特定のことが起こったことを発見した場合、それはそれ自身のスレッドのポイントカットを有効にします。このポイントカットは、すべてのパブリック メソッド呼び出しをログに記録し、しばらく (またはいくつかのインターセプト) の後、ポイントカットはオフになります。
もちろん、「...getCurrentThread().equals(myMonitoringThread) && monitoringEnabled」のようなアドバイスでコードを呼び出すこともできますが、それはアドバイスがすべてのスレッドのすべてのパブリック メソッドに対して実行され、常にこのコードを実行することを意味します。アプリケーション全体のパフォーマンスが確実に低下します。
私が望むのは、有効な時間だけ選択したスレッドのパフォーマンスをペナトリーに分離し、残りのスレッドに影響を与えないことです。
誰かがそれを行う方法について知っていますか?
ありがとうトーマス