Лучше выполнить файл по сети или сначала скопировать его локально? - PullRequest
1 голос
/ 14 июля 2011

Мое приложение winforms должно запускать исполняемый файл, который находится на общем ресурсе.Размер исполняемого файла составляет около 50 МБ (это файл типа setup.exe).Мое приложение будет работать на разных компьютерах / в сетях с разными скоростями (некоторые - быстрыми, но некоторые - очень медленными, например, со скоростью всего лишь 10baseT).

Лучше ли запускать файл прямо из общего ресурса или он более эффективен?скопировать его локально и затем выполнить?Я говорю с точки зрения раздражающего пользователя меньше всего.

Ответы [ 4 ]

1 голос
/ 14 июля 2011

Локально лучше.Копия будет читать каждый байт файла по одному разу, ни больше, ни меньше.По мере выполнения вы можете повторно посещать код, который находится вне кэша и т. Д. И снова извлекается.

Как программа установки, я бы предположил, что движок захочет также выполнить какой-либо CRC или другую проверку целостностиЭто означает, что он все равно читает весь файл.

1 голос
/ 14 июля 2011

Если ваше приложение маленькое, и ему не нужно загружать много разных ресурсов во время выполнения, тогда можно запустить его по сети. Это может быть даже предпочтительнее, потому что если вы запускаете его по сети, код читается (загружается и загружается в память) один раз, в отличие от загрузки файла вручную, а затем запускается, что занимает 2 чтения кода. Например, вы можете запустить приложение виджета часов по сети.

С другой стороны, если ваше приложение действительно читает много ресурсов во время выполнения runtim, то запускать его по сети - абсолютно плохая идея, поскольку каждое чтение ресурса будет проходить по сети, что очень медленно. Например, вы, вероятно, не хотите запускать Eclipse по сети.

Еще один фактор, который необходимо учитывать, это количество одновременно работающих пользователей, которые будут одновременно получать доступ к приложению. Если их много, скопируйте приложение в локальное приложение и запустите оттуда.

1 голос
/ 14 июля 2011

Всегда лучше выполнить его локально, чем запускать его по сети.

0 голосов
/ 04 мая 2015

Я полагаю, что ОС всегда копирует файл в локальную временную папку, прежде чем он действительно выполняется.После получения копии не происходит никаких поездок из / в сеть, это происходит только один раз.Это похоже на то, как работает браузер ... сначала он извлекает файл, сохраняет его локально, а затем запускается, если он находится вне локального временного хранилища, где он его сохранил.Другими словами, нет необходимости копировать его вручную, если вы не хотите сохранить копию для себя.

...