眾所周知,我們在寫程式的時候,好習慣是在重要的代碼打上日誌。以便監控程式運行的性能和記錄可能發生的錯誤。但是,如果日誌是基於同步IO文件操作,那麼就必須考慮到訪問總次數或併發數目。如果總次數或併發數目非常大,比如10W或者1K/s 或更多,那麼就要註意IO的同步性能對程式速度的拖慢效應了。 這個時候 ...
眾所周知,我們在寫程式的時候,好習慣是在重要的代碼打上日誌。以便監控程式運行的性能和記錄可能發生的錯誤。
但是,如果日誌是基於同步IO文件操作,那麼就必須考慮到訪問總次數或併發數目。
如果總次數或併發數目非常大,比如10W或者1K/s 或更多,那麼就要註意IO的同步性能對程式速度的拖慢效應了。
這個時候,你就有必要用非同步或NIO的日誌類庫來寫日誌了。
下麵,是我一段掃描伺服器的過期文件和清理轉移到其他位置的部分代碼。日誌為IO同步寫入。
下班前,測試一把,感覺速度總有點不對,後面發現是日誌類庫同步寫IO(這裡這個函數訪問次數很多,密集運算)導致的問題。
記錄下來,作為以後不要忘記。
註釋同步IO日誌代碼前後,程式執行速度對比,分別如下
前後,程式運行速度有天壤之別