Pra*_*hal 3 .net c# performance user-interface
我已经制作了一个简单的搜索工具,可以搜索计算机中的文件.
它有一个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() ;
}
Run Code Online (Sandbox Code Playgroud)
此外,通过尝试一些案例,我必须告诉你,无论是第一次还是以后的运行,制作列表框都需要相同的时间.
可能的原因是什么?
Han*_*ant 11
这是完全正常的,它与您的代码几乎没有关系.冷启动时间主要取决于硬盘的速度.当必须找到启动.NET应用程序所需的许多DLL时,这可能会令人失望.这不是.NET应用程序独有的问题,Office应用程序和Adobe Reader等大型非托管应用程序也存在此问题.这通常会通过安装"优化器"而作弊,这是一个在登录时运行的程序,它通过预加载程序所需的DLL来使您的机器变慢,因此它们在文件系统缓存中可用,从而在此过程中击败了SuperFetch.
操作系统的文件系统缓存对于慢速磁盘来说是一个非常有效的解决方案,但它就像一英里长的货运列车,以加快速度.从头开始用有用的数据填充它需要一段时间,有效的磁盘传输速率,当它必须寻求最多几兆字节/秒.也是用户喜欢SSD的核心原因,它提供了更为根本的解决方案.一旦你经历过一次,你永远不会回去.
在许多优秀的文章中都很好地介绍了,找到它们的最佳方法是通过谷歌搜索".NET冷启动时间".
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |