Skip to content

Instantly share code, notes, and snippets.

@joncloud
Created May 8, 2019 14:29
Show Gist options
  • Select an option

  • Save joncloud/b966e9e2cccc414a799ae49961e203f1 to your computer and use it in GitHub Desktop.

Select an option

Save joncloud/b966e9e2cccc414a799ae49961e203f1 to your computer and use it in GitHub Desktop.
BenchmarkDotNet=v0.11.5, OS=Windows 10.0.17134.706 (1803/April2018Update/Redstone4)
Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
Frequency=2531252 Hz, Resolution=395.0614 ns, Timer=TSC
  [Host]     : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3394.0
  DefaultJob : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3394.0

Method Mean Error StdDev Gen 0 Gen 1 Gen 2 Allocated
LogFilter 2.443 us 0.0127 us 0.0118 us 0.2098 - - 1008 B
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using log4net;
using log4net.Appender;
using log4net.Config;
using log4net.Core;
using log4net.Filter;
using log4net.Layout;
using log4net.Repository.Hierarchy;
using System;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
BenchmarkRunner.Run<Tests>();
}
}
[MemoryDiagnoser]
public class Tests
{
static readonly ILog _log = CreateLog();
static ILog CreateLog()
{
var layout = new PatternLayout("%utcdate %-5level - %message%newline");
layout.ActivateOptions();
var appender = new FileAppender
{
Layout = layout,
File = "C:/tmp/test.log",
};
appender.AddFilter(new LevelRangeFilter
{
LevelMax = Level.Fatal,
LevelMin = Level.Info
});
appender.ActivateOptions();
BasicConfigurator.Configure(appender);
var log = LogManager.GetLogger(typeof(Tests));
((Logger)log.Logger).AddAppender(appender);
return log;
}
[Benchmark]
public void LogFilter()
{
_log.Debug("1");
_log.Debug("2");
_log.Debug("3");
_log.Debug("4");
_log.Debug("5");
_log.Debug("6");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment