длительные скрипты и открытые текстовые документы - PullRequest
0 голосов
/ 10 октября 2009

При использовании долго выполняющегося сценария, который записывает в открытые текстовые файлы, скажем, для ведения журнала, какой подход лучше: открыть файл, записать в него по мере необходимости, а затем закрыть, когда закончите? Или открыть файл, написать в него и сразу же закрыть его каждый раз? Я вижу преимущества и недостатки для обоих. Есть мысли или переживания?

Ответы [ 3 ]

0 голосов
/ 10 октября 2009

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

0 голосов
/ 10 октября 2009

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

0 голосов
/ 10 октября 2009

Обычно открывать и закрывать - это то, что я делаю, если нет большого доступа к файлам. Имейте в виду, что для ОЧЕНЬ активных и длительных скриптов вам, возможно, придется иметь дело с исчерпанием файловых дескрипторов в вашей ОС.

http://en.wikipedia.org/wiki/File_descriptor

...