c# 第一次执行需要更多时间

标签 c# execution-time

我注意到我的 C# 应用程序有一个不寻常的地方。我第一次执行某些代码比后续执行花费的时间长得多。谁能给我解释一下这是为什么?

在我下面的简单测试应用程序中,它甚至是可见的,我得到了大约 13 的初始输出和大约 3 的后续输出。

    Stopwatch sw;
    int count = 0;
    private void Window_KeyUp(object sender, KeyEventArgs e)
    {
        RunTest();
    }

    private void RunTest()
    {
        sw = Stopwatch.StartNew();
        count = 0;
        for (int i = 0; i < 100; i++)
        {
            count++;
        }
        Console.WriteLine(sw.ElapsedTicks);
    }

最佳答案

第一次执行包括即时 (JIT) 编译器将代码从 Microsoft 的中间语言 (MSIL) 转换为您运行代码的任何机器的 native 可执行机器代码所花费的时间。

所有后续调用都重新使用已编译的代码。

关于c# 第一次执行需要更多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28950581/

相关文章:

php - 测量提供 Web 内容的 PHP 脚本的执行时间

c# - 如何在 ListView 项目的 Windows 10 UWP 中添加上下文菜单?

php - 我们可以使用 $_SERVER ['REQUEST_TIME_FLOAT' ] 来获得可靠的处理时间吗?

c - 如何在 C 中以毫秒为单位获取程序的执行时间?

c# - 是否可以在 css 中使用 c# 变量

C# 2.0 执行时间计时器

c++ - 执行时间较长的 C 程序示例

c# - MVC : How to manage slahses in URL int the first route parameter

c# - 从 SortedList 或 SortedDictionary 获取第 i 个值

c# - Web API OData v4 $count=true 被忽略