我會知道是否有人觀察到日志檔案中的大量日志寫入(如果處理 4 小時,則為 300k 行)是否會影響批處理性能。
P1:批處理在日志檔案中寫入了大量資訊,我懷疑如果我們在源代碼中洗掉或注釋所有這些日志寫入,批處理性能可能會提高并獲得 15 分鐘或更長時間的執行時間。
在一個完整的批處理執行(8-12 小時)中,我們可以擁有一百萬行或更多行。
P2:或者資料庫檢查和日志寫入可以并行完成?但我認為我們的源代碼并沒有這樣做。
uj5u.com熱心網友回復:
嗯,是。太多的日志記錄確實會影響性能。但要知道它對性能的影響有多大,唯一的方法就是對其進行測量。
P1:批處理在日志檔案中寫入了大量資訊,我懷疑如果我們在源代碼中洗掉或注釋所有這些日志寫入,批處理性能可能會提高并獲得 15 分鐘或更長時間的執行時間。
沒有人能告訴你你會獲得多少時間。(如果你獲得這么多,我會感到驚訝,但我可能是錯的。測量它!!)
P2:或者資料庫檢查和日志寫入可以并行完成?但我認為我們的源代碼并沒有這樣做。
將并行日志顯式編碼到您的應用程式中可能是一個壞主意,因為它會使您的代碼更加復雜。還有一種更好的方法來獲得一些并行性:嘗試使用異步附加程式。
您可以做很多事情來調整日志記錄性能,而無需將其全部洗掉。這些包括:
- 切換到不同的日志庫。例如,log4j 2.x 應該比 log4j 1.2 更高效。
- 不要記錄太多。
- 在適當的級別進行日志記錄,并根據情況調整日志級別。
- 確保您正在有效地創建日志訊息。例如,避免生成由于日志級別而不會被記錄的復雜訊息字串。(在 log4j 2.x 中,使用
Logger采用格式字串的方法。) - 避免日志格式/格式化程式中的昂貴功能。例如,記錄類/方法相對昂貴。
- 嘗試使用異步日志附加程式。
有關日志記錄性能的一些背景資訊,請查看 log4j2性能頁面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/413268.html
標籤:
下一篇:嘗試比較大檔案時Java代碼掛起
