Вход в Windows 7 занимает всего несколько секунд, в то время как вход в Windows 10 занимает несколько минут - PullRequest
0 голосов
/ 15 января 2019

Я столкнулся с проблемой при использовании log4net. Следующее приложение было запущено в Windows 7 и Windows 10. Существует значительная разница в производительности. Это было опробовано на нескольких машинах с Windows 10 с похожим результатом.

Версия Log4net: 2.0.8.0

Windows 7: 6 секунд
Windows 10: 2 минуты и 17 секунд
Информация о Windows 10: Версия 1809. Сборка ОС: 17763.253 (эта сборка уже исправлена: KB4058258 (сборка ОС 16299.214) ).
.NET версия: 4.6.1

test.log4net.config

<log4net>
  <appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="c:\temp\myLog.log" />
    <appendToFile value="false" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="All" />
    <appender-ref ref="FileAppender" />
  </root>
</log4net>

Program.cs

using log4net;
using log4net.Config;
using System;
using System.Diagnostics;
using System.IO;

namespace ConsoleAppPerfTest
{
    public class Program
    {
        static void Main(string[] args)
        {
            XmlConfigurator.ConfigureAndWatch(new FileInfo("test.log4net.config"));
            var t = new Test();
            var sw = new Stopwatch();
            sw.Start();
            t.RunTest();
            sw.Stop();
            Console.WriteLine("Elapsed Minutes: {0}", sw.Elapsed.TotalMinutes);
            Console.ReadLine();
        }
    }

    public class Test
    {
        private readonly ILog _log = LogManager.GetLogger(typeof(Test));

        public void RunTest()
        {
            for (int i = 0; i < 22000; i++)
            {
                _log.DebugFormat("test logging something: {0}", i);
            }
        }
    }
}

По какой-то причине, когда вы удаляете эту строку из test.log4net.config, производительность в Windows 10 работает так же быстро, если не быстрее, чем в Windows 7:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...