자바 오픈 소스 형 프레임 워크 대회

출처: 인터넷
작성자: 사용자
키워드: 우리는 J2입니다.

Http://www.aliyun.com/zixun/aggregation/14223.html "> 응용 프로그램 시스템 로그 오류 정보의 응용 프로그램 로그 파일에서 찾을 수 있어야 모든 필수적인 중요 한 부분입니다 일부 응용 프로그램 시스템 로그는 매우 작은 수 있습니다, 일부 대형 응용 프로그램 시스템 로그는 매우 큰 로그 파일 사용자 친화적인 되어야 하며 검색, 높은 성능을 그렇지 않으면 그것은 것에 영향을 미칠 응용 프로그램 시스템의 성능.

이후 로그 자주 IO 읽기 / 쓰기 디스크를 포함 (또는 차단 또는 비동기), 시간이 오래 걸릴 수 있습니다. 큰 시스템에 데이터를 많이 있는 경우 로그에서 걸리는 시간을 명백한 것입니다. 이 문서에서는, 우리 것 이다 탐구 하다 현재 자바 오픈 소스를 탐험은 세계 최고의 5 로그 프레임, 비교, 지적 하이 글의 모든 측면에서 어떤 로그 프레임 워크만을 그들의 강점과 약점을 나열 하지만 최고입니다.

5 로그 프레임 우리가 선택 했다:

1입니다. log4j

2입니다. Log4j2

3입니다. Logback

4. slf4j 간단한 로깅 (slf4j SL)

5. 자바 Util 로깅 (6 월)

각각의 타임 스탬프와 그 맥락의 프로세스 ID를 포함 하는 기본 로깅 작업에 대 한 이러한 로그 프레임 워크의 성능을 비교 합니다. 우리는 다음 4 가지 평가 실시:

1. 레코드 문자열 상수

2. 로깅은. POJO 사용. ToString () 메서드는 POJO의 ToString () 값

3. 로깅 Throwable 객체 레코드 throwable 객체 4만 테스트. ToString () 메서드

우리는 어느 날 종이 완성 되었습니다 횟수를 측정 하 여 최상의 결과 했다 결정을 5 번 각 시나리오를 평가 하기로 결정 했습니다. 각 테스트에 로그 엔진 10 스레드 1 분에 실행 되 고 나머지 세 번 평균 최대 2 편차 제거 됩니다.

우리 (임의의 숫자가 소수 인지 확인) 등의 일부 작업을 수행 하는 CPU를 하자 각 개별 로깅 작업에 로그인 할 때. 이러한 평가 대 한 로그 엔진 SLF4J에 의해 실행 됩니다 그들의 각각 기본 구성을 사용 하 여. 평가 아마존 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 = 공유

다음은 4 시나리오에 따라 테스트 결과의 상세한 분석입니다.

문자열 상수

경쟁의이 라운드에서 로그 엔진은 스레드 및 타임 스탬프 컨텍스트 레코드 문자열 상수를 사용 합니다. LOG4J는 챔피언, 6 월 270% 저널을 작성할 수 있습니다 보다 더 많은 라인, Logback 보다는 더 많은 slf4j SL 보다 12.5%, 52%. 재미 있는 것은 우리가 log4j2의 구성을 변경 하기 전에 구성 변경 후 1/4 보다 더 많은 행을 기록, 성능 3, 30%는 Logback에 기록 하는 행의 수 위는.

2. ToString)

Pojo (사용 하는. ToString 메서드)이이 라운드에 기록 된 동일한 스레드 및 타임 스탬프에 사용 됩니다. 결과적으로, log4j2에 대 한 첫 번째 라운드와 동일 하지만 SLF4J sl에 비해 25% 성능 향상은. Log4j와 Logback, 3, 위 SLF4J sl의 88%의 처리량을 했다.

3. Throwable

이 라운드에서 경쟁의, 로그 엔진 예외 개체와 관련 된 설명 정보를 기록합니다. Log4j2 우선 순위는, 그것의 성과 slf4j SL, SL 5 곳에는 slf4j 보다 3 시간.

log4j와 Logback만 평가 될 수 있다이 라운드에서 우승 후, 행 수, 챔피언의 반 대략 서만 기록 그리고 두 번째 6 월, 약 82%의 Log4j2 로그 볼륨의 제목을 기록할 수 있다.

4. ToString () 메서드 경쟁

서버 로그를 처리 하는 경우 (예: 스레드 ID, 클래스, 타임 스탬프, 등의 관련된 컨텍스트) 각 로그 항목의 컨텍스트는 로그 콘텐츠 만큼 이나 중요. 이전 테스트에서 당신은 대부분의 로그 파일-스레드 ID 번호 및 타임 스탬프에 일반적인 플래그 사용. 다음 우리가 가치가 있다고 생각 그것의 성능을 분석 합니다. toString () 메서드는 로그에.

이 시점에서, Log4j2는 우승자 (180% 성능 향상을 얻을 구성 변경) 하는 경우, Logback 및 6 월 약 25%를 승리. SL4FJ SL 격파 되었다입니다. 라운드 당 5 테스트 slf4j SL에서는 불가능 했던 때 보다 더 나은 펜더 사용.

Log4j 처리량의 15% 증가 있다. 6 월 log4j와이 라운드에서 log4j2에 대 한 일치 이며, 결과 동일 하지 콘텐츠 데이터를 사용 하 여.

이 문서에 대 한 테스트 코드는 https://github.com/takipi/the-logging-olympics에서 다운로드할 수 있습니다.

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.