gpt4 book ai didi

c# - 为什么第一次打开表格需要更长的时间?

转载 作者:行者123 更新时间:2023-11-30 13:31:36 24 4
gpt4 key购买 nike

我制作了一个简单的搜索实用程序,可以在您的计算机中搜索文件。
它有一个函数 search 搜索文件并为 mainloop 函数创建匹配项列表,该函数依次调用 displayForm 函数显示新形式的搜索结果。
每当我在启动后第一次运行应用程序时,虽然 search 功能在大约 1 秒内完成了搜索,但显示结果窗口所花费的时间却需要相当长的时间(大约 10 秒)。这只会在您启动后第一次搜索时发生。

我没有为 search 函数提供任何代码,因为我认为 search 函数并不重要,因为无论第一次运行它,它所花费的时间几乎相同或后续次数,displayForm 的工作非常简单。

    public void displayForm()
{
// Do some stuff here
// Make a listbox and add items to display.
SearchForm.ShowDialog() ;
}

另外,通过几个案例的实验,我必须告诉你,无论是第一次运行还是后续运行,制作列表框所花费的时间都是一样的。
这可能是什么原因?

最佳答案

这是完全正常的,与您的代码无关。冷启动时间主要由硬盘的速度决定。当它必须找到启动 .NET 应用程序所需的许多 DLL 时,这可能会令人失望。这不是 .NET 应用程序独有的问题,Office 应用程序和 Adob​​e Reader 等大型非托管应用程序也有此问题。这往往会通过安装“优化器”来作弊,该程序在登录时运行,并通过预加载程序所需的 DLL 使您的机器变慢,以便它们在文件系统缓存中可用,从而在此过程中击败 SuperFetch。

操作系统的文件系统缓存对于慢速磁盘来说是一个非常有效的解决方案,但它就像一英里长的 cargo 火车要跟上速度。从头开始用有用的数据填充它需要一段时间,当它必须寻找时,有效的磁盘传输速率最多是几兆字节/秒。这也是用户如此喜欢 SSD 的核心原因,它提供了一个更根本的解决方案。一旦经历过,就再也回不去了。

在许多优秀文章中都有很好的介绍,找到它们的最佳方法是通过谷歌搜索“.NET 冷启动时间”。

关于c# - 为什么第一次打开表格需要更长的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com