Проблема с FileWriter - PullRequest
       13

Проблема с FileWriter

0 голосов
/ 30 июля 2011

Я запускаю Java-приложение на сервере Windows 2008 (64-разрядная версия) в точке доступа vm.

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

Основной поток всегда кажется застрявшим в следующей строке, что я бы предположил, почти 5 секунд за один раз. Через несколько секунд приложение продолжает работать нормально и без проблем:

PrintWriter writer = new PrintWriter(new FileWriter(PATH + name + ".txt"));

Не уверен, что вызывает это, но любое понимание проблемы было бы очень ценно. Файлы, которые я пишу, маленькие, и это маловероятно (если у кого-то нет возражений).

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Ответы [ 2 ]

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

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

0 голосов
/ 30 июля 2011

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

Я бы проверил, включен ли кэш записи на вашем диске, и ваши диски большую часть времени простаивают. ;)

...