我用wpf创建了一个简单的应用程序,并注意到一个奇怪的行为: 应用程序有两个按钮,具有不相关和非常简单的行为。每当我启动它,任何按钮的第一次点击需要两到三秒才能完成。只有第一次点击很慢。随后的点击几乎是立竿见影,正如他们简单的行为所预期的那样。我搜索谷歌和SO,但没有人似乎遇到同样的问题。第一次点击按钮很慢
应用程序的详细信息是:
SQL Server 2008上的NorthWind db;
Linq to SQL自动生成的类;
Customers
作为DataGrid的表;
按钮1 OnClick
事件:Context.SubmitChanges()
;
Button 2 Onclick
事件在MainWindow
类中交替布尔型DependencyProperty。
正如您所看到的,设置非常简单。如果每按一下按钮的速度都很慢,我会将它们归因于WPF性能问题。奇怪的是,每当我启动它,只有第一次点击响应缓慢,其他人是正常的。
JIT编译器必须在第一次单击时编译字节码。它可以在其他点击上执行已编译的本机代码,因为它已被缓存在内存中。这会使第一个点击后的任何点击快得多。 – Rohan
我见过一些网络操作出现这种行为。我最初认为它与主机名查找有关,但应该由操作系统缓存,但每次运行应用程序时都会发生。尽管如此,你可以用非网络相关的操作来描述它。 – Steve
@Rohan我想过这个,但是应用程序启动之前不应该编译完成吗?如果没有,有没有办法强制这种行为? – jose