Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test results from applusplus/master using net5.0 #6

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions LoggingPerformance.NLog/LoggingPerformance.NLog.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="LibLog" Version="5.0.0" />
<PackageReference Include="NLog.Config" Version="4.5.10" />
<PackageReference Include="LibLog" Version="5.0.8">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NLog" Version="4.7.7" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion LoggingPerformance.NLog/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace LoggingPerformance.NLog
{
internal class Program
{
private static int _countPerThread = 5000000;
private static int _countPerThread = 1000000;
private static int _producersCount = 1;
private static int _totalCount;

Expand Down
12 changes: 8 additions & 4 deletions LoggingPerformance.Serilog/LoggingPerformance.Serilog.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="LibLog" Version="5.0.0" />
<PackageReference Include="Serilog" Version="2.7.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="LibLog" Version="5.0.8">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions LoggingPerformance.Serilog/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ namespace LoggingPerformance.Serilog
{
internal class Program
{
private static int _countPerThread = 5000000;
private static int _countPerThread = 1000000;
private static int _producersCount = 1;
private static int _totalCount;

private static void Main(string[] args)
{
var log = new LoggerConfiguration()
.WriteTo.File("Log.txt", buffered: true, flushToDiskInterval: TimeSpan.FromMilliseconds(1000))
.WriteTo.Async(a => a.File("Log.txt", buffered: true), blockWhenFull: true)
.CreateLogger();

Log.Logger = log;
Expand Down
8 changes: 4 additions & 4 deletions LoggingPerformance.sln
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2026
# Visual Studio Version 16
VisualStudioVersion = 16.0.30907.101
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoggingPerformance.Serilog", "LoggingPerformance.Serilog\LoggingPerformance.Serilog.csproj", "{8C0236B3-A8A7-4D49-84A4-CCBEBBCD0956}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoggingPerformance.Serilog", "LoggingPerformance.Serilog\LoggingPerformance.Serilog.csproj", "{8C0236B3-A8A7-4D49-84A4-CCBEBBCD0956}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoggingPerformance.NLog", "LoggingPerformance.NLog\LoggingPerformance.NLog.csproj", "{5996F906-257C-4C07-91EB-FEFCF8411D09}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoggingPerformance.NLog", "LoggingPerformance.NLog\LoggingPerformance.NLog.csproj", "{5996F906-257C-4C07-91EB-FEFCF8411D09}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
141 changes: 73 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ Logging performance comparison between Serilog and NLog.

### Dev info

1. Windows 10 Education x64
2. Microsoft Visual Studio Enterprise 2017 15.7.3
3. .NET Core 2.0
1. Windows 10 Enterprise 64-bit (Build 18363)
2. Microsoft Visual Studio Enterprise 2019 16.8.4
3. .NET 5
4. Platform target: 64bit

### Computer infomation

1. Intel i5-7500 3.40GHz
2. 16GB
3. Intel 600P 256G
1. Intel Core i7 8665U @ 1.90GHz
2. 16GB DDR4-2667 (1333 MHz)
3. Seagate FireCuda 520 SSD 1TB

### Involving library

Expand All @@ -27,82 +28,86 @@ Logging performance comparison between Serilog and NLog.

### Arrange

Write target: File
Test input count: 1000000
Producer: 1
Write target: File
Test input count: 1000000
Producer: 1

### Serilog

Generated 1000000 values in 3506ms (throughput = 285199.451 ops per second)
Mean latency = 3.474mcs
99% observations less than = 15.624mcs
99.99% observations less than = 125.596mcs
0) 2.404 - 3.7258 = 950441
1) 3.726 - 5.0479 = 15937
2) 5.048 - 6.3699 = 2294
3) 6.370 - 7.6920 = 3218
4) 7.692 - 9.0141 = 10559
5) 9.014 - 10.3361 = 1593
6) 10.336 - 11.6582 = 630
7) 11.658 - 12.9803 = 705
8) 12.980 - 14.3023 = 466
9) 14.302 - 15.6244 = 5128
Generated 1000000 values in 4541ms (throughput = 220180,668 ops per second)
Mean latency = 4,500mcs
99% observations less than = 10,100mcs
99.99% observations less than = 6068,900mcs

0) 1,800 - 2,6300 = 453451
1) 2,630 - 3,4600 = 443718
2) 3,460 - 4,2900 = 64609
3) 4,290 - 5,1200 = 10908
4) 5,120 - 5,9500 = 3786
5) 5,950 - 6,7800 = 3105
6) 6,780 - 7,6100 = 2710
7) 7,610 - 8,4400 = 1313
8) 8,440 - 9,2700 = 1226
9) 9,270 - 10,1000 = 5529

### NLog

Generated 1000000 values in 7256ms (throughput = 137812.554 ops per second)
Mean latency = 7.225mcs
99% observations less than = 434.178mcs
99.99% observations less than = 1055.547mcs
0) 0.901 - 44.2290 = 989657
1) 44.229 - 87.5566 = 46
2) 87.557 - 130.8843 = 12
3) 130.884 - 174.2119 = 230
4) 174.212 - 217.5395 = 43
5) 217.540 - 260.8671 = 6
6) 260.867 - 304.1948 = 1
7) 304.195 - 347.5224 = 2
8) 347.522 - 390.8500 = 0
9) 390.850 - 434.1776 = 5
Generated 1000000 values in 2532ms (throughput = 394849,270 ops per second)
Mean latency = 2,483mcs
99% observations less than = 3,000mcs
99.99% observations less than = 2006,100mcs

0) 1,100 - 1,2900 = 229206
1) 1,290 - 1,4800 = 610634
2) 1,480 - 1,6700 = 4284
3) 1,670 - 1,8600 = 31350
4) 1,860 - 2,0500 = 62533
5) 2,050 - 2,2400 = 32473
6) 2,240 - 2,4300 = 10990
7) 2,430 - 2,6200 = 4577
8) 2,620 - 2,8100 = 2385
9) 2,810 - 3,0000 = 2084

# Benchmarks 2

### Arrange

Write target: File
Test input count: 5000000
Producer: 1
Write target: File
Test input count: 5000000
Producer: 1

### Serilog

Generated 5000000 values in 17053ms (throughput = 293191.681 ops per second)
Mean latency = 3.381mcs
99% observations less than = 15.324mcs
99.99% observations less than = 120.789mcs
0) 2.404 - 3.6958 = 4746369
1) 3.696 - 4.9878 = 97342
2) 4.988 - 6.2798 = 7559
3) 6.280 - 7.5718 = 6611
4) 7.572 - 8.8638 = 58916
5) 8.864 - 10.1559 = 10432
6) 10.156 - 11.4479 = 3673
7) 11.448 - 12.7399 = 1609
8) 12.740 - 14.0319 = 1525
9) 14.032 - 15.3239 = 19770
Generated 5000000 values in 21804ms (throughput = 229308,208 ops per second)
Mean latency = 4,322mcs
99% observations less than = 10,300mcs
99.99% observations less than = 6132,500mcs

0) 1,900 - 2,7400 = 3352251
1) 2,740 - 3,5800 = 1196751
2) 3,580 - 4,4200 = 283497
3) 4,420 - 5,2600 = 38472
4) 5,260 - 6,1000 = 16407
5) 6,100 - 6,9400 = 15284
6) 6,940 - 7,7800 = 8545
7) 7,780 - 8,6200 = 4784
8) 8,620 - 9,4600 = 7933
9) 9,460 - 10,3000 = 31267

### NLog

Generated 5000000 values in 38294ms (throughput = 130567.331 ops per second)
Mean latency = 7.628mcs
99% observations less than = 462.422mcs
99.99% observations less than = 1126.458mcs
0) 0.901 - 47.0534 = 4947863
1) 47.053 - 93.2055 = 445
2) 93.205 - 139.3575 = 825
3) 139.357 - 185.5095 = 684
4) 185.510 - 231.6616 = 116
5) 231.662 - 277.8136 = 29
6) 277.814 - 323.9656 = 16
7) 323.966 - 370.1176 = 5
8) 370.118 - 416.2697 = 1
9) 416.270 - 462.4217 = 17
Generated 5000000 values in 12230ms (throughput = 408807,710 ops per second)
Mean latency = 2,397mcs
99% observations less than = 2,600mcs
99.99% observations less than = 1938,000mcs

0) 1,100 - 1,2500 = 1290664
1) 1,250 - 1,4000 = 3163826
2) 1,400 - 1,5500 = 9390
3) 1,550 - 1,7000 = 17602
4) 1,700 - 1,8500 = 29994
5) 1,850 - 2,0000 = 223645
6) 2,000 - 2,1500 = 245122
7) 2,150 - 2,3000 = 76199
8) 2,300 - 2,4500 = 39976
9) 2,450 - 2,6000 = 12144