我用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