通过网络执行文件或首先在本地复制文件是否更好?

时间:2011-07-14 01:02:58

标签: networking windows-7 windows-xp execute file-copying

我的winforms应用程序需要运行一个位于共享上的可执行文件。 exe约为50MB(这是一个setup.exe类型的文件)。我的应用程序可以在不同的速度上运行在许多不同的机器/网络上(有些速度很快,但有些速度非常慢,比如10baseT速度不足)。

直接从共享执行文件是更好还是在本地复制然后执行它更有效?我说的是至少让用户烦恼。

4 个答案:

答案 0 :(得分:1)

在本地执行它总比在网络上运行更好。

答案 1 :(得分:1)

本地更好。副本将一次读取文件的每个字节,不多也不少。执行时,您可能会重新访问超出缓存等的代码并再次被拉出。

作为安装程序,我认为引擎也会想要进行某种CRC或其他完整性检查,这意味着它无论如何都要读取整个文件。

答案 2 :(得分:1)

如果您的应用程序很小,并且在运行时不需要加载许多不同的资源,那么可以通过网络运行它。它甚至可能更受欢迎,因为如果你通过网络运行代码就会被读取(下载并加载到内存),而不是手动下载文件然后运行它需要2个读取代码。例如,您可以通过网络运行时钟小部件应用程序。

另一方面,如果您的应用程序在runtim期间读取了大量资源,那么在网络上运行它绝对是一个坏主意,因为每次读取资源都将通过网络进行,这非常慢。例如,您可能不希望通过网络运行Eclipse。

要考虑的另一个因素是有多少并发用户将同时访问该应用程序。如果有很多,您应该将应用程序复制到本地并从那里运行。

答案 3 :(得分:0)

我相信操作系统在实际执行之前总是将文件复制到本地临时文件夹。在获得副本后,没有从/到网络的往返,它只发生一次。这有点像浏览器的工作方式......它首先检索文件,在本地保存,然后在离开保存它的本地临时文件时运行。换句话说,除非您想为自己保留副本,否则无需手动复制。