2011-09-02 2 views
2

디렉토리 (수천 개의 파일 포함)에서 XML 파일을 읽고, 내용을 처리하고 각 입력 파일에 대해 하나의 출력 파일을 작성하고 있습니다. 각 파일에 대해 새 인스턴스를 만드는 대신 기존의 BufferedWriter을 '다시 가리키는'방법이 있습니까?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(); 
    } 

... 

낭비 ScannerBufferedWriter의 반복의 수천을 만들어야 할 것으로 보인다.

+0

작성자 객체를 다시 사용할 수 있는지 JVM에서 탐지 할 수 있습니다 ... – dacwe

+0

객체 생성이 매우 저렴하므로 객체 생성에 대해 걱정할 필요가 없습니다. –

+0

'BufferedWriter'는 * 매우 * 경량 클래스입니다. 파일을 감싸는 것보다 훨씬 가볍습니다. – parsifal

답변

3

나에게 이것은 조기 최적화처럼 들릴 것입니다. JVM은 지구상에서 가장 똑똑한 소프트웨어 중 하나이며, 오브젝트 수명이 짧은 지 여부를 감지 할 수 있습니다. 또한 최적화의 보트로드를 수행 할 수 있습니다. 대부분의 마이크로 최적화는 성능이 떨어지게 만듭니다.

성능 최적화의 핵심은 이유가 아닌 측정 값입니다.

관련 문제