調査 #164
高橋 徹 さんがほぼ4年前に更新
h4. 調査目的
log4j 2.xのAppender、ログ出力設定(Pattern)により性能がどれだけ変わるのか凡その把握をする。
h4. 調査結果
シングルスレッドのアプリケーション(JavaFXアプリケーション)で繰り返し処理(1万回強)の中にログ出力を埋め込み、処理時間の比較でログの負荷を評価した。
|_. No.|_. 概要 |_. 時間[ms]|_. 備考 |
| 1 |同期ログ出力 |>. 906 | |
| 2 |同期ログ出力(動的コンテキスト取得)|>. 2213 |
| 3 |非同期ログ出力 |>. 653 |
| 4 |非同期ログ出力(動的コンテキスト取得)|>. 1857 |
* 動的コンテキスト取得は、ファイル名、行番号、メソッド名の取得
h5. 実行環境
|OS | Windows 10 1909 64bit 日本語版 |
|CPU | AMD PhenomⅡ 1050T |
|JDK | Liberica JDK 14 Full|
|log4j | 2.13.3 |
|disruptor | 3.4.2 |
h4. 完了条件
* 標準の同期ロガーと非同期ロガー(LMAX disruptorを内部で使用)との性能差が把握できた 標準のFileAppender、AsyncAppender、LMAX disruptorとの性能差が把握できた
* Pattern に動的な要素(ログを実行したメソッド名等)を入れた場合の性能劣化が把握できた
戻る