java奥运会安排赛程问题_记录奥运-当今五大Java记录框架之间的竞赛
java奧運會安排賽程問題
開發人員:Takipi會告訴您何時新代碼在生產中中斷–
Log4J vs SLF4J簡單vs Logback vs Java Util日志記錄vs LOG4J2
日志記錄實際上是每個服務器端應用程序中古老且固有的部分。 這是應用程序以持久且可讀的方式輸出實時狀態的主要方法。 某些應用程序每天可能僅記錄幾兆字節,而其他應用程序可能會在數小時內記錄千兆字節或更多的數據。
由于日志記錄通常涉及IO將數據寫入磁盤(阻塞或異步)–因此需要付出一定的代價。 在短時間內記錄大量數據時,該成本會Swift增加。 我們決定更深入地研究當今一些領先的日志記錄引擎的速度。
大多數開發人員記錄數據的原因主要有以下三個:
在立面的后面 。 如今,大多數庫都在代碼的關鍵點內置了日志,以提供對其操作的可見性。 為了簡化此過程并防止不同的庫在同一JVM中采用多種日志記錄方法,將代碼與底層引擎分離的日志記錄Facade成為最重要的問題。 當我們分析Java的前100個軟件庫時 ,SLF4J成為當今開發人員使用的主要日志記錄界面。
競賽
我們決定選擇五個當今最杰出的測井引擎,并觀察它們在許多比賽中的表現。 現在,在取出割炬和干草叉之前,我想說明的并不是要說哪個更好,而是要了解在許多常見的日志記錄任務中引擎之間的吞吐量差異。
參賽者
種族
我們想看看引擎如何比較一組標準的日志記錄活動。 每個日志記錄操作都包括一個時間戳和一個線程ID作為其上下文。
這些是種族:
軌道
我們決定為每場比賽舉行五次預賽,以確定最佳成績,衡量完成的伐木作業次數。 在每個測試中,我們都給日志記錄引擎一個任務,使其在一分鐘內跨10個線程執行(測試分別運行)。 然后,我們取出偏差最大的2個加熱點,并對其余3個結果取平均值。
在每個單獨的日志記錄操作之間,我們給CPU做一些工作來在日志記錄操作之間放置一些空間(檢查是否有小的隨機數是素數)。 引擎均使用其默認配置在SLF4J后面運行。 基準測試是在Amazon m1.large EC2實例上運行的。
結果
要查看完整的數據集– 單擊此處 。
第1場–字符串常量
在這場比賽中,引擎正在記錄一個字符串常量以及線程和時間戳上下文。 Log4J在這里無疑是贏家,能夠寫的行數比JUL多了270%,比logback多了12.5%,比SLF4J SL多了52%。 值得注意的是,在更改Log4J2的配置之前,可以少寫入4X(!)行,而swtich將其提升為#3,而寫入的行數僅比logback少30%。
第2場– .toString()
在這場比賽中,引擎正在記錄POJO(通過其.toString)以及線程和時間戳上下文。 Log4J2排在第一位,與SLF4J SL排在第二位相比,具有25%的優勢(變更后),這里的結果更加接近。 Log4J和Logback在#3點上并駕齊驅,JUL以SLF4J SL的88%吞吐率獲得白銀。
第三場比賽-投擲
在這場比賽中,引擎正在記錄異常對象和描述字符串以及線程和時間戳上下文。 在此競賽中,Log4J2著火了,與#5的SLF4J SL相比,在#1處記錄的行數是行的3倍(!)多。
Log4J和Logback也被遺忘了,記錄的次數不到我們尊敬的獲勝者的一半。 7月排在第二名,與我們的獲勝者相比,記錄了82%的比賽成績-不錯。
第4場比賽(赤腳跑步)– .toString()減去上下文
處理服務器日志時,每個條目的上下文(例如線程ID,類上下文,時間戳等)幾乎與條目本身的內容一樣重要。 在以前的比賽中,我們使用了在大多數服務器日志條目中可以找到的兩個最常見的上下文元素-線程ID和時間戳。 我們認為通過運行.toString()競賽而不使用任何引擎的上下文附加程序來分析這些開銷非常有趣。
Log4J2是這里的贏家(更改會議后,可獲得180%的提升),Logback和JUL的領先優勢明顯為25%。 SLF4J SL緊隨其后。 令人困惑的是,在5個不同的加熱條件下,SLF4J SL使用添加器的效果要好于不使用添加器的效果(希望您能在評論中聽到您的想法)。
Log4J的最大突破是吞吐量增加了15%。 盡管在競爭中,JUL的性能不如Log4J或Log4J2,但無論有沒有上下文數據,JUL都能提供幾乎完全相同的結果。
我很想聽聽您的意見和建議。
- 您也可以在GitHub上簽出代碼。
翻譯自: https://www.javacodegeeks.com/2013/12/the-logging-olympics-a-race-between-todays-top-5-java-logging-frameworks.html
java奧運會安排賽程問題
總結
以上是生活随笔為你收集整理的java奥运会安排赛程问题_记录奥运-当今五大Java记录框架之间的竞赛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米笔记本测评(小米笔记本电脑测评)
- 下一篇: 为什么在子类中不重写超类的实例变量