2011-07-14 39 views
0

我的winforms應用程序需要運行坐在共享上的可執行文件。該exe大約50MB(這是一個setup.exe類型的文件)。我的應用程序可以運行在許多不同速度的機器/網絡上(速度有些快,但速度很慢,就像幾乎10baseT的速度)。通過網絡執行文件還是先在本地複製文件更好?

直接從共享執行文件還是更有效率地將其複製到本地然後執行?我正在討論用戶最不喜歡的方面。

回答

1

本地比較好。副本將一次讀取文件的每個字節,不多不少。在執行時,您可能會重新訪問超出緩存等的代碼並再次被取消。作爲一個安裝程序,我會假定引擎會想要做某種CRC或其他完整性檢查,這意味着它無論如何都會讀取整個文件。

1

本地執行它比在網絡上運行它總是更好。

1

如果您的應用程序很小,並且不需要在運行時加載許多不同的資源,那麼可以通過網絡運行它。它甚至可能更好,因爲如果通過網絡運行它,代碼將被讀取(下載並加載到內存),反對手動下載文件,然後運行需要讀取2個代碼的代碼。例如,您可以通過網絡運行時鐘小部件應用程序。另一方面,如果您的應用程序在runtim期間確實讀取了大量資源,那麼通過網絡運行它絕對是一個壞主意,因爲每次讀取資源都會經過網絡,這非常緩慢。例如,你可能不想在網絡上運行Eclipse。

要考慮的另一個因素是有多少併發用戶將同時訪問應用程序。如果有很多,你應該將應用程序複製到本地並從那裏運行。

0

我相信操作系統在執行之前總是將文件複製到本地的臨時文件夾中。在獲得副本後,網絡中沒有往返任何往返行程,只發生一次。這有點像瀏覽器的工作原理......它首先檢索文件,將其保存在本地,然後在離開保存它的本地臨時文件時運行。換句話說,除非你想爲自己保留一份副本,否則沒有必要手動複製它。

+0

瀏覽器是不同的。如果它們啓用緩存(HTTP標頭屬性),則它取決於該站點,否則每次請求時都會爲數據提取數據。 –