2013-04-30 207 views
10

我已經寫了一個簡單的.net WPF應用程序(僅包含2個小窗口),但其啓動速度太慢 - 大約10-20秒!C#WPF非常緩慢的應用程序啓動

探查說:

  • Main->RunInternal(56%)
  • Main->RunInternal->ctor->LoadBaml(32%)

最大的應用負載部分時間 - 是Main->RunInternal功能的身體,這ISN」我的功能,我不知道他們做了什麼。 他們的執行時間可以被優化嗎?

加載Baml標記佔用了32%的時間,但我的程序只有3個XAML文件,它們包含的代碼少於100行。 爲什麼這個動作需要這麼長時間?

問我已閱讀並嘗試了這些技巧,但他們並沒有幫助我之前:

所以,我怎麼能加快啓動時間我的申請?

謝謝。

PS。我在兩臺類似的電腦上測試過這個程序,結果是一樣的。

+1

如果沒有真正的環境,性能優化並不是真正的客觀事物。除非你提供一些代碼,否則我擔心沒有很多人能夠幫助你。 – Sisyphe 2013-04-30 07:40:59

+1

是否存在綁定錯誤?他們可以顯着減慢你的應用程序。 – 2013-04-30 07:41:11

+0

沒有任何綁定錯誤和警告... – 2013-04-30 07:47:14

回答

3

看看上面評論中提到的文章。

我想這是8,(驗證碼),這取決於什麼組件您引用

+2

我按照提及的文章中的itme 8建議的那樣進行了測試,它將我的應用程序啓動時間從16 -20s到3s。 – Felix 2013-07-26 07:55:17

0

我有同樣的問題。 Google和RunInternal一點關係都沒有。

然後我試着備份我以前的代碼,並且刪除程序集和文件,直到只剩下一個窗口。

然後,它的工作 - 啓動時間從10秒縮短到1秒!

這一次,分析器僅表現爲System.Windows.Application.Run()代替RunInternal

這是非常奇怪的是,這臺計算機,即使經過重新導入竊聽(慢)版本,它正確工作!而我的筆記本電腦,沒有通過上述定影仍然啓動程序10多秒。