4

Я пытаюсь написать программу, которая выполняет чтение / обработку / запись.

Хотя все работает нормально, когда я указываю своей программе локальный путь, я сталкиваюсь с необычной проблемой: огромным использованием памяти при обработке файлов по локальной сети.

Если путь к файлу похож на « //network_address/folder/*.ext », программа использует около 4 ГБ ОЗУ (в отличие от 500 - 1 ГБ, когда путь похож на « c:/folder/*.ext »).

Я использовал Process Monitor, чтобы увидеть, что происходит, и заметил постоянные сбои чтения в папке « c:\windows\csc\v2.0.6\namespace », которую я даже не знал, что она существует. Исследуя его, я обнаружил, что он использовался для синхронизации файлов с сетевым сервером, возможно, для просмотра сетевых файлов в автономном режиме.

Вышеуказанные сбои происходили как раз перед запуском процесса записи в файл (не перед чтением), папка пространства имен не использовалась, у меня ничего не было синхронизировано, и фактическая запись на сетевые диски прошла успешно.

Я не настроил опцию синхронизации папок ... (и не хочу)

Как только я стал владельцем этой папки, использование памяти уменьшилось (хотя я все еще получал ошибки чтения в Process Monitor).

Так... Я думаю, что моя проблема в том, что я пытаюсь сделать то, что мне не разрешено, и использую много памяти для хранения данных, пока я пытаюсь сделать то, что мне не разрешено, до тех пор, пока я не потерплю неудачу и, наконец, не помещу данные в свое место ...

Решение: избегать делать то, что мне не разрешено, верно?

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

Как я могу запретить Windows синхронизировать файлы за моей спиной и просто записывать файлы прямо в сетевую папку?

1 ответ1

1

Вы уже поняли это? Попробуйте отключить автономные файлы внутри общего ресурса:

  1. Щелкните правой кнопкой мыши на акции
  2. Перейти на вкладку «Обмен»
  3. Нажмите на кнопку Расширенный обмен
  4. Нажмите на кнопку кэширования
  5. Выберите «Нет файлов или программ из общей папки, доступных в автономном режиме».
  6. Нажмите кнопку ОК, чтобы закрыть всплывающее окно «Настройки автономного режима».
  7. Нажмите кнопку ОК, чтобы закрыть всплывающее окно «Расширенный обмен».
  8. Нажмите кнопку «Закрыть», чтобы закрыть окно свойств вашего ресурса

Еще одна вещь, которую вы можете попробовать на клиентском ПК, - отключить службу автономных файлов, если это Win7/Vista.

Дайте нам знать, как это работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .