크기가 350KB이고 오랜 시간이 걸리는 파일에서 개체를 deserialize하는 중입니다. 컴퓨터 과학 TA는 ObjectInputStream과 함께 Buffered 판독기를 사용하여 성능을 크게 향상시킬 수 있다고 말했습니다. 그러나 나는 이것에 대해 Google에서 아무 것도 찾을 수 없습니다.Buffered ObjectInputStream가 존재합니까?
9
A
답변
18
장식을 사용하여 입력 스트림을 버퍼링합니다. 이
InputStream in = ...; // your underlying stream (e.g. FileInputStream)
ObjectInputStream oin = new ObjectInputStream(new BufferedInputStream(in));
처럼이 ObjectInputStream를 호출 할 때마다 같은 OS의 파일 읽기 시스템 호출로 기본 스트림 in
를 호출하지 않도록합니다. 대신 각 호출은 데이터 블록 (기본적으로 8K)을 가져와 캐시하고 버퍼에서 읽습니다. 스트림에서 읽기가 이제 java의 로컬 메소드 호출이고 시스템 호출의 메소드 호출 오버 헤드가 자주 발생하지 않으므로 속도가 빨라집니다. 캐시 일관성 및 JIT 최적화도 성능 향상에 도움이됩니다.
2
아니하지만 당신은 위의 생성자에 인자로 BufferedInputStream을 전달하여 스트림 INTPUT 버퍼 객체를 만들려면 하는 ObjectInputStream (에서의 InputStream) 생성자
를 사용할 수 있습니다.
InputStream file = null;
try {
file = new FileInputStream("Out.test");
InputStream buffer = new BufferedInputStream(file);
ObjectInputStream in = new ObjectInputStream(buffer);
vector = (Vector)in.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally{
if(file != null) {
file.close();
}
}
지갑 다음 링크 : 여기
파일로 직렬화 된 오브젝트를 판독하는 예이다
가http://java.sun.com/docs/books/performance/1st_edition/html/JPIOPerformance.fm.html
관련 문제
- 1. Touch gets Buffered
- 2. === jquery에 존재합니까?
- 3. Java Buffered Image, JPanel ontop 문제
- 4. MATLAB의 Elementwise ifs - 존재합니까?
- 5. XSS 고문 테스트 - 존재합니까?
- 6. 메서드에 대한 'TypeDescriptor'- 존재합니까?
- 7. , isLastItem()이 존재합니까?
- 8. 접대 가이드가 존재합니까?
- 9. Limewire API : 존재합니까?
- 10. gwt getKey 메소드가 존재합니까?
- 11. ID가없는 중첩 컬렉션에 존재합니까?
- 12. 왜 이것이 존재합니까?
- 13. Degrafa 그리기 도구 - 존재합니까?
- 14. 일반 SQL 프록시 - 존재합니까?
- 15. 양면 winform 트리 - 존재합니까?
- 16. 왜 모노가 존재합니까?
- 17. SPRING MVP가 존재합니까?
- 18. SWF 트랜스 코딩, 존재합니까?
- 19. 부스트 테스트 슈트가 존재합니까?
- 20. 이 함수는 PHP에 존재합니까?
- 21. Console.Out.WriteLine이 왜 존재합니까?
- 22. PerfMon 웹 인터페이스 - 존재합니까?
- 23. 왜 실버 라이트가 존재합니까?
- 24. content 속성이 html로 존재합니까
- 25. Java에서 Buffered IO를 사용하여 파일의 다른 두 위치에서 읽는 방법
- 26. Google 모바일 결제 라이브러리 - 존재합니까?
- 27. 왜 Convert.ToInt32 (DateTime)가 존재합니까?
- 28. 유니버설 REST 프론트 엔드 - 존재합니까?
- 29. 왜 일대일 단방향 매핑이 존재합니까?
- 30. "전문가"프로그래머와 디자이너가 실제로 존재합니까
'ObjectInputStream'는 1K 버퍼에게 시간의 적어도 일부를 사용하므로,이 제안 여기에 제안 된 것과 같이 극적으로 효과가 없을 것입니다. – EJP
@EJP이 솔루션은 'BufferedReader'의'readLine()'메소드와 같이 객체를 읽을 수있을만큼 효율적입니까? –