2

Perl を使用してファイルに複数の行を書き込む必要があります。行ごとに小さなチャンクで書き込むことと、すべてを保存してファイルハンドルに一度だけアクセスしてすべてを書き込むことの長所または短所は何ですか?

4

2 に答える 2

6

Perl は内部でファイル書き込みのバッファリングを実行します。かなりの量になるまでデータを保存し、一度にすべて書き込みます。

したがって、ファイル ハンドルに何度も書き込みを行っても、ファイルへの実際の書き込み回数は制限されます。バッファリングを明示的に回避するために何かをしない限り ($|=1書き込むたびにファイルを設定するか、ファイルを閉じてから再度開くなど)、何度も書き込みを行ってもパフォーマンスが大幅に低下することはありません。

それが最も便利な場合は、行ごとに記述する必要があります。

于 2013-04-10T13:12:28.450 に答える
1

一般に、書き込むデータが何であるかがわかったらすぐにデータを書き込む方が便利なので、そうしてください。ファイルハンドルを繰り返し使用しても問題はありません。

そして、はい、書き込まれたデータの総量が出力バッファーのサイズよりも大きい場合、メモリを節約できますが、実際には、数十メガバイトを書き込んでいない限り、メモリ消費の違いは問題ではありません。そのため、最も明確で維持しやすい方法で記述してください。

于 2013-04-10T13:11:39.050 に答える