2

ディレクトリ (数千のファイルを含む) から XML ファイルを読み取り、コンテンツを処理して、入力ファイルごとに 1 つの出力ファイルを書き込んでいます。BufferedWriterファイルごとに新しいインスタンスを作成する代わりに、既存のものを「再ポイント」する方法はありますか?

...
    Scanner scanner;
    BufferedWriter writer;
    File outfile;
    for (File f: directory.ListFiles[]){
      scanner = new Scanner(f);
      outfile = ...;
      // processing input
      writer = new BufferedWriter(new FileWriter(new File(outfile)));
      // write the content
      writer.flush();
      writer.close();
    }

...

Scannerandの反復を何千回も作成しなければならないのは無駄に思えますBufferedWriter

4

1 に答える 1

3

私には、これは時期尚早の最適化のように聞こえます。JVMは、地球上で最も賢いソフトウェアの1つであり、オブジェクトが短命であるかどうかを検出できます。また、大量の最適化を実行できます(そして実行する予定です)。ほとんどの場合、マイクロ最適化を行おうとすると、パフォーマンスが低下するだけです。

パフォーマンスの最適化の鍵は、理由ではなく、測定することです。

于 2011-09-02T13:45:00.400 に答える