【问题标题】:Big performance drop on own program自己的程序性能大幅下降
【发布时间】:2019-11-21 16:38:35
【问题描述】:

我不确定这个正确的站点 Stack Exchange。如果错了,告诉我是哪一个。

我有自己的程序(C#、WinForms)和两台带 CPU 的计算机:

  1. 英特尔酷睿 i5-2320,3200 MHz(Windows 7)
  2. 英特尔赛扬 G1820 2700 MHz(Windows 10)

该程序与 Access 数据库 (Entity Framework Core) 结合使用。例如,加载要在表中显示的多条记录,添加、更新和删除记录。

我的问题是性能。第一台电脑没有问题。这是日志的一部分:

Load page: 00:00:01.8143480
LoadSetData(): 00:00:00.1475554
===! Load time: 00:00:02.3864354 !===
Update() contract: 00:00:00.1656815
Update() contract: 00:00:00.0436293

第二台计算机做了一些奇怪的事情。可以这样做:

Load time: 00:00:17.8201432
DeleteSubject(): 00:00:25.7574691
Update() contract: 00:00:10.1656815

可以这样:

Load time: 00:00:02.3210213
DeleteSubject(): 00:00:00.4818238
Update() contract: 00:00:00.1836919

程序代码在所有情况下都是相同的。唯一的区别是位宽。第一台计算机启动 x86(因为安装了 Office Access x86)。第二台计算机是 x64。通过 Visual Studio 编译。

我不明白为什么会出现如此显着的性能下降。就好像某些东西正在接管整个处理器。不让我的程序工作。但在不同的时代,正确地给予工作。

我认为这与程序代码无关。毕竟第二台计算机可以充分处理我的程序。根据日志。

这个问题的原因可能是什么?

例如,我可以给出一个典型的数据库访问代码,以说明这在很长一段时间内并不是一项“繁重”的任务。

internal bool DeleteContract(int id)
{
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();

    bool result = true;

    try
    {
        using (ModelContext model = new ModelContext())
        {
            Contracts c = model.Contracts.Single(x => x.Id == id);
            model.Remove(c);
            model.SaveChanges();
        }
        Count--;
    }
    catch (Exception ex)
    {
        result = false;
        ShowMessage.Error("some text");
    }

    stopwatch.Stop();
    logger.Debug("DeleteContract(): {0}", stopwatch.Elapsed);
    return result;
}

【问题讨论】:

  • 这几乎可以肯定而且完全是环保的。谁知道发生了什么,即 celeron 可能是热节流,它可能有病毒扫描程序或其他任何东西。您的代码中没有任何内容表明这是代码问题。另外应该知道这种类型的测试是有问题的,而不是最好的基准测试方法,DB 以及它如何启动或任何数量的设置可能存在差异
  • 更不用说赛扬是双核的,而 i5 是带有核心升压的四核。此外,开箱即用的 Windows 10 比 7 更“繁忙”。以更少的功率消耗更多的负载可能解释了性能参差不齐的原因..

标签: windows-7 windows-10 cpu performance c#


【解决方案1】:

目标计算机有防病毒软件。有时防火墙会捕获对 Microsoft 的请求。 This 问题。我不知道是为了什么。是减速程序。另一方面,打开带有许多标签的 Chrome。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2021-07-12
    • 1970-01-01
    • 2014-03-09
    • 2020-04-07
    相关资源
    最近更新 更多