В конце концов, вы просите какое-то оборудование. Другими словами: вы хотите, чтобы jvm отслеживал стек вызовов и, что более важно, делал эту информацию доступной вам программно.
И даже если вы хотите, чтобы это происходило только с конкретными методами, jvm все равно должен отслеживать все вызовы методов, поскольку он не может знать, вызывается ли один из методов для отслеживания в конце. Таким образом, невозможно легко отследить вызовы методов без влияния на производительность. И инструменты, которые я знаю, которые могут поддерживать это влияние на производительность на разумном уровне, такие как XRebel, предназначены для последующей оценки, а не для программного потребления.
Другими словами: единственные решения для зависания ситуаций:
- делает дамп потока и анализирует его
- делает обширную запись / трассировку во время работы вашего кода, чтобы проанализировать это в случае или зависает
Просто чтобы прояснить: то, что вы просите, получить трассировку стека уже выполненного кода после того, как факт невозможно достичь!