国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 詳解.Net core2.0日志組件Log4net、Nlog簡單性能測試

詳解.Net core2.0日志組件Log4net、Nlog簡單性能測試

2020-05-28 15:03supernebula ASP.NET教程

這篇文章主要介紹了詳解.Net core2.0日志組件Log4net、Nlog簡單性能測試,比較log4net、nlog的文件寫入性能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

.Net coreLog4netNlog簡單性能測試

比較log4net、nlog的文件寫入性能(.netcore環境),涉及代碼和配置如有不正確的地方,還請批評指正。

測試環境

開發工具: Vsual Studio 2017 15.3

框架版本: .net core 2.0

操作系統:window10 Enterprise 1703

硬件配置:CPU I3-4170 3.7GHz,內存 8G,固態硬盤

日志組件

log4net 2.0.8

nlog 5.0.0-beta10

測試用例

1.不啟用Buffer,連續插入20萬行字符串到文件,單文件最大1MB。

2.啟用Buffer為100,連續插入20萬行字符串到文件,單文件最大1MB。

測試方法

xunit單元測試。

測試代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Diagnostics;
using System.IO;
using Xunit;
using Xunit.Abstractions;
namespace Demo.Logging.Tests
{
  /// <summary>
  /// Log4net、Nlog日志文件寫入對比
  /// </summary>
  public class BigDataTest
  {
    private readonly ITestOutputHelper output;
    public BigDataTest(ITestOutputHelper outputHelper)
    {
      output = outputHelper;
    }
 
    /// <summary>
    /// 使用Log4net連續插入20W行字符串
    /// </summary>
    [Fact]
    public void Log4netTest()
    {
      log4net.Repository.ILoggerRepository repository = log4net.LogManager.CreateRepository("NETCoreRepository");
      var fileInfo = new FileInfo("config/log4net.config");
      log4net.Config.XmlConfigurator.Configure(repository, fileInfo);
      log4net.Config.BasicConfigurator.Configure(repository);
      log4net.ILog log = log4net.LogManager.GetLogger(repository.Name, "NETCorelog4net");
 
      var total = 200000;
      var sw = new Stopwatch();
      sw.Start();
      for (int i = 0; i < total; i++)
      {
        log.Info("log4 bigdata test: " + i);
      }
      sw.Stop();
      log.Info($"total: {total}, Elapsed:{sw.ElapsedMilliseconds}");
      output.WriteLine($"Log4net測試 total: {total}, Elapsed:{sw.ElapsedMilliseconds}");
    }
 
    /// <summary>
    /// 使用Nlog連續插入20W行字符串
    /// </summary>
    [Fact]
    public void NlogTest()
    {
 
      NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
      var total = 200000;
      var sw = new Stopwatch();
      sw.Start();
      for (int i = 0; i < total; i++)
      {
        log.Info("nlog bigdata test: " + i);
      }
      sw.Stop();
      log.Info($"total: {total}, Elapsed:{sw.ElapsedMilliseconds}");
      output.WriteLine($"NLog測試 total: {total}, Elapsed:{sw.ElapsedMilliseconds}");
    }
 
  }
}

測試用例一:不啟用緩存,連續插入20W行

1.Log4net

配置

log4net.config

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <!-- This section contains the log4net configuration settings -->
 <log4net>
  
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
   <file value="logfile/" />
   <appendToFile value="true" />
   <rollingStyle value="Composite" />
   <staticLogFileName value="false" />
   <datePattern value="yyyyMMdd'.log'" />
   <maxSizeRollBackups value="10" />
   <maximumFileSize value="1MB" />
   <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date | %message%newline" />
   </layout>
  </appender>
 
  <!-- Setup the root category, add the appenders and set the default level -->
  <root>
   <level value="ALL" />
   <appender-ref ref="RollingLogFileAppender" />
  </root>
 
 </log4net>
</configuration>

測試結果

輸出日志內容:

2017-09-11 19:38:02,276 | log4 bigdata test: 0

2017-09-11 19:38:02,279 | log4 bigdata test: 1

... ...

... ...

2017-09-11 19:38:02,279 | log4 bigdata test: 199998

2017-09-11 19:38:02,279 | log4 bigdata test: 199999

Log4net耗時:

寫入行數:200000, 毫秒數:7749

2.Nlog

配置

nlog.config

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   autoReload="true"
   internalLogLevel="Warn"
   internalLogFile="internal-nlog.txt">
 
 <!-- define various log targets -->
 <targets>
  <!-- write logs to file -->
  <target xsi:type="File" name="ownFile-web" fileName="logs/nlog-own-${shortdate}.log"
       layout="${longdate} | ${message}"
      archiveAboveSize="1048576"/>
 </targets>
 
 <rules>
  <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
 </rules>
</nlog>

測試結果

輸出日志內容:

2017-09-11 19:38:02,276 | nlog bigdata test: 0

2017-09-11 19:38:02,279 | nlog bigdata test: 1

......

......

2017-09-11 19:38:02,279 | nlog bigdata test: 199998

2017-09-11 19:38:02,279 | nlog bigdata test: 199999

Nlog耗時:

寫入行數:200000, 毫秒數:104468

測試用例二:啟用Buffer,連續插入20W行

1.Log4net

配置 log4net.config

?
1
2
3
4
5
6
7
......
 
 <log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
   <bufferSize value="100" />
 
......

耗時:Log4net寫入行數:200000, 毫秒數:4672

2.Nlog

配置

nlog.config

?
1
2
3
4
5
6
7
8
9
10
11
......
 
 <targets>
  <!-- write logs to file -->
  <default-wrapper xsi:type="BufferingWrapper" bufferSize="100"/>
  <target xsi:type="File" name="ownFile-web" fileName="logs/nlog-own-${shortdate}.log"
       layout="${longdate} | ${message}"
      archiveAboveSize="1048576"/>
 </targets>
 
......

Nlog耗時:寫入行數:200000, 毫秒數:1605

總結

 

日志組件 版本 環境 用例 (啟用Buffer=100)毫秒數 (不啟用Buffer)毫秒數
log4net 2.0.8 .netcore 2.0 20W行文件寫入 4672 7749
nlog 5.0.0-beta10 .netcore 2.0 20W行文件寫入 1605 104468

 

代碼和配置文件都在上邊了,不知道不同配置的機器結果如何。

大家又會傾向于nlog還是log4net? log4net無論是否啟用buffer,耗時都比較穩定,10秒以內,前后差距1.66倍;nlog在啟用buffer前后,耗時差距65倍 ,未啟用buffer竟然需要100多秒,雖然在啟用buffer后僅1.605秒。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/supernebula/p/7506993.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲欧美在线观看 | 欧美九九 | 黄在线免费观看 | 国产日产欧产美韩av | 精品在线看 | 全部古装三级在线播放 | 夜久久| 黑人中文字幕一区二区三区 | 亚洲精品国产综合区久久久久久久 | 久久久国产视频 | 亚洲国产成人精品久久久国产成人一区 | 不卡一区二区av | 免费成人一级片 | 色综合久久久 | 麻豆精品国产91久久久久久 | 福利在线看| www久久精品 | 国产第一区二区三区 | 国产日韩欧美 | a黄视频 | 日本一区二区三区免费观看 | 青青草成人在线 | 久久国产高清 | 最新中文字幕在线 | 国产激情在线观看 | 91精品一区二区三区久久久久久 | 免费成人在线网站 | 久久精品中文 | 国产精品一区二区免费 | 中文字幕 亚洲一区 | 在线观看视频一区 | 午夜男人| 国产精品无码久久久久 | 亚洲一区二区中文 | 日韩无| 国产探花在线精品一区二区 | 久久久精品影院 | 成人特黄a级毛片免费视频 国产在线视频一区二区 | 国产精品一区三区 | 国产伦精品一区二区三区四区视频 | 亚洲国产一区二区三区在线播放 |