的啓動我有一個Visual Studio的/C#的ClickOnce應用程序,它會從一個Web service它的所有數據。我已經調整了應用程序,儘管它必須從Web服務中獲取幾乎所有東西的數據,但它對用戶來說感覺相當快。方式加快ClickOnce應用程序
但是,創業仍然非常緩慢。似乎需要一段時間才能生成第一個Web服務調用。之後,這很好。
我該怎麼做才能加快啓動這種類型的應用程序?我是否需要生成序列化程序集?
的啓動我有一個Visual Studio的/C#的ClickOnce應用程序,它會從一個Web service它的所有數據。我已經調整了應用程序,儘管它必須從Web服務中獲取幾乎所有東西的數據,但它對用戶來說感覺相當快。方式加快ClickOnce應用程序
但是,創業仍然非常緩慢。似乎需要一段時間才能生成第一個Web服務調用。之後,這很好。
我該怎麼做才能加快啓動這種類型的應用程序?我是否需要生成序列化程序集?
花一些時間分析應用程序加載的程序集。這將對您的應用程序的加載時間產生最大的影響。如果您只有偶爾使用的類型,請將它們移到另一個程序集。 ClickOnce可以根據需要優化程序集的下載,因此在加載時減少所需的程序集數量將使其加載速度更快。
你也可以有一種與加載其他組件動態(Assembly.Load),他們被加載後,調用真正的處理最低限度集依賴「存根」發射的。
您可以使用ClickOnce文件組將應用程序拆分爲可管理的片段,然後在需要時使用ClickOnce API下載組。文章ClickOnce File Groups解釋瞭如何做到這一點。
確保您獲得.NET 3.5 SP1,因爲在啓動領域有顯着的性能改進。特別是WPF應用程序。
而且作爲Web服務調用,您可以速度,如果你確保你生成一個序列化程序集在編譯時。從我記憶中,Visual Studio不知道什麼時候自動生成這個文件,但你可以用SGEN.EXE來完成。
它創建一個單獨的組件,如MyApp.XmlSerializer.dll裏面包含了所有的Web服務調用序列化代碼。如果沒有這個,你的應用程序會爲程序集做一個失敗的探測,然後動態生成代碼並在內存中進行編譯,這就是爲什麼你的第一個Web服務調用很慢。
(無關)它的效果。情緒是一種主動動詞,或者在心理學術語中,是一種表示情緒表達能力的名詞 - 但這種意義將壓力放在第一個音節上。 – 2009-05-28 19:44:11