Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Запуск *.exe, который находится на шаре

#windows #cmd


Сценарий:

Допустим, на некоторой шаре лежит какой-то *.exe файл.

Из своей программы я запускаю командную строку, где запускаю данный *.exe с передачей
аргументов. 

*.exe делает какую-то работу и закрывается и так N-раз.

Вопрос в том:

При каждом обращении к *.exe я его буду "скачивать" в ОЗУ по новой или ОС его закеширует?
    


Ответы

Ответ 1



Любопытно, потестировал у себя в сети, вот что получил: При обычном запуске *.exe из сетевой папки его кеширования не происходит; Однако, если запущенная программа уже есть в памяти (висит как процесс) — файл не гоняется по сети при запуске второго экземпляра. Причём это работает, даже если запускать тот же файл, но с другими параметрами. Как вывод — очевидный костыль: запустить одну копию программы, чтобы она висела в памяти, и последующие копии не гонялись по сети. При необходимости воспользоваться приостановкой процесса или даже запуском под отладчиком, если программа имеет тенденцию самостоятельно закрываться слишком быстро. А теперь перейдём к нормальному решению. В Windows встроен механизм автономных файлов, позволяющий работать с сетевыми папками без доступа к сети (т.е. механизм кеширования). Настраиваться он может с обеих сторон. 1) Владелец сетевой папки может: Разрешить кеширование (по умолчанию); Полностью запретить кеширование; Сделать его принудительным для всех открываемых сетевым пользователем файлов. Настраивается это так: Компьютер → Управление → Общие папки → Общие ресурсы → Свойства → Настройка автономного режима 2) Со стороны пользователя можно: В проводнике выбрать нужный файл и в контекстном меню поставить галочку на пункте «Всегда доступно автономно» Централизованное управление всеми файлами, для которых настроен автономный доступ, есть в Панели Управления, в разделе Центр Синхронизации → Автономные файлы.

Ответ 2



Сам по себе SMB не может чтото закешировать(может кроме метаданных). Чтобы происходило кеширование файлов, нужно настроить чтото вроде BranchCache

Комментариев нет:

Отправить комментарий