我們最近應用了幾乎所有應用程序模塊/組件(大約50個項目)都使用的緩存解決方案。爲了更好地理解哪些緩存操作在不同的系統「位置」上執行,我們爲當前執行的緩存操作(包括堆棧跟蹤)添加了日誌記錄,以準確知道觸發緩存操作的內容。訪問性能良好的堆棧跟蹤?
我們當前的方法如下所示:我們從新的Throwable()中獲取堆棧跟蹤,過濾不相關的行並記錄剩餘的堆棧跟蹤。儘管創建一個新的例外來遺憾地登錄並不便宜。由於我們不直接使用緩存,而是通過休眠來找到哪個調用者觸發操作而不訪問堆棧跟蹤並不那麼容易。我的問題是:是否有更高性能的解決方案來訪問當前的堆棧跟蹤,然後Throwable()。getStackTrace或Thread.currentThread()。getStackTrace()?
「創建一個新的例外遺憾日誌是沒有便宜的操作雖然」 - 其實我想不出任何其他的操作,可以比這更貴。你不能用它的源代碼來測試休眠嗎? – Leo 2014-09-30 08:46:01
是的,我想我們可以。我們也討論過這個問題,但我們希望先用這個不費腦筋的解決方案來嘗試。 – u6f6o 2014-09-30 08:55:50