Windows

執行檔以什麼順序從網路共享傳輸和執行?

  • September 6, 2020

在執行之前將執行檔傳輸到本地電腦與直接從 SMB 共享執行它有什麼區別。從共享執行它會將整個文件傳輸到一個臨時位置然後執行它,還是從共享“流式傳輸”執行檔,從而導致對頻寬的影響延長更長的時間?

從共享執行執行檔就像它在本地磁碟上一樣。系統會將執行檔載入到記憶體中並執行它。這不會改變執行檔是否是遠端的。

Windows 有一個基於記憶體的文件記憶體。它將執行檔連同它執行時所需的其他組件(即庫 (DLL)、數據文件等)一起拉入該記憶體。由於需要這些額外的組件,它們將在本地或遠端讀取…並在記憶體中儲存一段時間。

它不會將文件“複製”到本地磁碟位置然後執行它。它將它讀入記憶體並立即執行。

至於頻寬隨時間的使用情況,這可能不是您認為的那樣……

假設執行檔是一個小的單文件執行檔,這意味著它沒有任何需要的配置文件或自定義庫。在這種情況下,無論您是在本地複製文件還是從共享中執行文件,傳輸的數據都大致相同。

但是,可以說它是一個複雜的軟體應用程序,如 Office、Photoshop 等,其中需要大量較小的數據文件和庫。在程序執行時,它會在需要時讀取它需要的特定數據項。因此,隨著時間的推移,基於共享的應用程序將繼續通過網路讀取數據,但每次讀取通常會非常小。

當我們談論持續的磁碟讀取時,我前面提到的文件記憶體開始發揮作用……本地或遠端。記憶體有助於減少重複磁碟讀取的次數。對於具有大量庫和配置文件從記憶體中推送和拉取的基於共享的應用程序,記憶體可以減少網路流量,因為它會保留數據一段時間,以防再次需要它。

將此與復製文件然後在本地執行它進行比較。如果它是一個大型應用程序,這將沒有多大意義,因為您每次需要使用它時都會進行非常大的文件傳輸(和安裝)。對於您經常使用的應用程序,這將不是一個有趣的體驗。

一般來說,網路頻寬問題與其說是安裝在共享上的應用程序,不如說是應用程序使用的數據問題。以 Photoshop 為例。從共享執行 Photoshop 毫不費力。從共享載入一個 500MB 的圖像文件以在 Photoshop 中處理是另一回事。

這是對嘗試回答您的問題的工作原理的簡單化視圖。我希望它有所幫助。

引用自:https://serverfault.com/questions/1032828