成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java開源日志框架大比拼

譯文
開發 后端
應用系統中,日志是不可缺少的重要組成部分,所有的應用的出錯信息等都應該能在日志文件中查找到,有的應用系統日志可能數量很小,有的龐大的應用系統的日志是相當龐大,同時日志文件必須是方便用戶定制和查找的,要具備很高的性能,否則會影響應用系統的性能。

[[107559]]

應用系統中,日志是不可缺少的重要組成部分,所有的應用的出錯信息等都應該能在日志文件中查找到,有的應用系統日志可能數量很小,有的龐大的應用系統的日志是相當龐大,同時日志文件必須是方便用戶定制和查找的,要具備很高的性能,否則會影響應用系統的性能。

由 于日志通常涉及到IO讀寫磁盤(或者是阻塞或者是異步),這都要耗費時間。當在大型系統中有大量數據的時候,日志所耗費的時間就會顯現。在本文中,將深入 探討目前Java開源世界中領先的五個日志框架,在各個方面進行比較,要指出的是,本文并不是探究哪個日志框架是***秀的,而只是列出各自的優缺點。

我們選取的五個日志框架分別為:

1. Log4J

2. Log4J2

3. Logback

4. SLF4J Simple Logging (SLF4J SL)

5. Java Util Logging (JUL)

我們想對比下這些日志框架對于基本的日志記錄活動的性能如何,每一個日志操作包括時間戳和其上下文的進程ID。我們進行如下四個方面的測評:

1.記錄字符串常量

2. Logging the .toString() value of a POJO 對POJO使用.toString()方法

3. Logging a throwable object 記錄throwable對象4 只測試.toString()方法

我們決定為每種場景進行五次的評測,通過衡量完成日紙記錄的操作次數,以決定哪一個有***的成績。在每次測試中讓日志引擎在一分鐘內使用10個線程去執行,并且剔除***的2次偏差,將余下的三次進行平均。

在每一個單獨的日志記錄操作中,我們讓CPU在日志記錄的時候都執行一些操作(如檢查是否一個隨機數是否素數)。這些評測的日志引擎都使用各自的默認配置通過SLF4J來運行。評測是在Amazon m1.large EC2實例上進行的。

在 Log4j2的剛開始的測試中,我們設置了%C的布局參數(參考:http://logging.apache.org/log4j/2.x /manual/layouts.html),這增加了其開銷,在@RemkoPopma的建議下,我們更新了設置為%c(日志的名稱)以符合其他的配 置,這給Log4j2一個性能相當大的提升,在下面兩個圖中,值得注意的是記錄上下文的性能開銷。

使用%C的設置:

使用%C的設置:


 

完整的測試結果集參考這個鏈接:https://docs.google.com/spreadsheet/ccc?key=0Alceaf46X4GPdHBoLTdYQ29nRDh6V1dRY00zT1FwWWc&usp=sharing

下面對基于4個場景的測試結果進行具體分析:

一 字符串常量

在 這輪比拼中,需要日志引擎使用線程和時間戳上下文去記錄字符串常量。Log4j是冠軍,比JUL能多寫270%的日志行,比logback多12.5%, 比SLF4J SL多52%。有趣的是在我們改變log4j2的配置前,它寫的行數能是比改變后的1/4左右,在更改配置后,性能排在第三位,只比logback記錄的 行數少30%。

二.toString()

在 這輪比拼中記錄的是POJO(使用其.toString方法),同樣使用的是線程和時間戳。結果中,對于Log4j2來說,和***回合差不多,但相比 SLF4J SL有25%的性能提升。Log4j和Logback是并駕齊驅的,位居第三,其吞吐量是SLF4J SL的88%。

三.Throwable

在這輪比拼中,日志引擎記錄異常的對象和相關的描述信息。其中Log4j2是位居首位,其性能比SLF4J SL高3倍,SLF4J SL位于第五位。

而Log4j和Logback也是只能排在此輪的冠軍之后,記錄的行數只大概有冠軍的一半,而第二位的反而是JUL,能記錄冠軍Log4j2的日志量的大概82%。

四.toString()方法比拼

當 處理服務器日志的時候,每一個日志項的上下文(例如線程ID,類的相關上下文,時間戳等等)都是和日志內容一樣重要。在之前的測試中,使用的是在大多數日 志文件中常見的標志――線程ID號和時間戳。接下來我們認為值得去分析單純在日志中使用.toString()方法的性能。

這個時候,Log4j2是贏家(如果改變配置,能獲得180%的性能提升),贏出Logback和JUL 大概25%。SL4FJ SL則落敗。在每輪的五次測試中,SLF4J SL在啟用appenders的時候性能比不啟用要好。

Log4j在吞吐量上有15%的增加。JUL在這輪比拼中比不上Log4j和Log4j2,其結果和不使用上下文數據是一樣的。

本文的測試代碼可以在https://github.com/takipi/the-logging-olympics中下載。

原文鏈接:http://www.takipiblog.com/2013/12/18/the-logging-olympics-a-race-between-todays-top-5-logging-frameworks/

 

責任編輯:陳四芳 來源: 51CTO
相關推薦

2021-03-02 09:00:00

開源框架技術

2010-03-18 14:54:46

主流無線技術

2011-01-19 11:10:30

2017-09-10 14:29:03

眼力

2010-09-08 15:41:28

SIP協議棧

2010-05-28 11:09:51

SVN功能

2011-11-08 10:29:44

2010-08-25 16:12:34

職場

2023-05-26 15:53:48

MidjourneyAI圖像

2021-03-15 21:07:17

IT行業薪酬薪水

2023-11-14 09:00:00

向量數據庫ChromaMilvus

2010-08-05 14:25:30

Flex框架

2017-02-05 17:10:41

機器學習深度學習框架

2010-07-14 13:38:51

Perl開發工具

2020-08-04 17:06:40

Merging Rebasing Git

2013-04-22 14:21:13

WP、Android、

2009-12-01 08:47:41

2009-10-13 14:46:00

思科認證

2018-10-25 14:08:07

KubernetesGoogle

2019-03-29 08:25:21

JSONXML前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产综合久久久久久鬼色 | 国产91视频一区二区 | 美女视频一区二区三区 | 天天干天天插天天 | 神马久久春色视频 | 国产精品毛片一区二区三区 | 亚洲精品免费看 | 黄色日本视频 | 中文字幕在线观看精品 | 亚洲精品乱码久久久久久蜜桃91 | xnxx 日本免费| 中文字幕在线网 | 一区二区国产精品 | 亚洲成人蜜桃 | 九九久久在线看 | 精品欧美乱码久久久久久1区2区 | 一区二区三区国产精品 | 精品视频一区二区在线观看 | 91精品国产91久久久久久吃药 | 国产精品视频播放 | 中文字幕在线看第二 | 老头搡老女人毛片视频在线看 | 日日天天| 欧美久久久久久久 | 国产精品美女久久久久久久久久久 | 精品一区二区电影 | 亚洲一级黄色 | 国产在线高清 | www.亚洲区| 精品久久久久久久 | 狠狠操在线 | 久久久一区二区三区四区 | 国产精品色| 国产精品一区二区在线播放 | 成人免费网站www网站高清 | 久久不卡区 | 精品国产视频 | 亚洲成人精品在线 | 国产精品亚洲成在人线 | 久久久噜噜噜www成人网 | 欧美精品久久久 |