2009-12-28 6 views
1

큰 XML 문서를 생성하고 StAX XmlStreamWriter를 사용하여 클라이언트 스트림에 직접 씁니다. 네트워크가 극단적으로 느린 경우 스트림에 기록 된 바이트는 실제로 비교적 오랜 시간 동안 메모리 버퍼에 머무르고 내 서버에서 많은 메모리를 소비합니다.느린 네트워크에서 Java 서버 메모리 관리

내 질문은 : 내가 직접 클라이언트 스트림에 쓰는 것을 계속할 수 있으며 위에서 설명한 잠재적 인 메모리 문제를 피할 수 있습니까?

+1

메모리 문제가 있는지 확실히 알지 못한다면 최적화를 찾지 마십시오. –

+0

운영 체제가 스트림과 해당 버퍼를 관리합니다. 자바에 영향을 미치기 위해 할 수있는 일은 많지 않습니다. 당신도 신경 써야합니다. TCP/IP 스트림은 수십만 명의 프로그래머에게 유용합니다. – kdgregory

답변

1

더 빠르게 생성하면 메모리에 있어야만 스트림을 생성 할 수 있습니다. 이것이 중요한 문제가된다면 파일을 생성하는 것과 같이 메모리 밖으로 이동시키는 방법을 살펴볼 필요가 있지만 여전히로드되고 스트리밍되어야합니다. 파일의 주요 이점은 많은 요청에 대해 파일을 재사용 할 수있는 경우입니다.

+0

그래,이게 내가 아는 가장 좋은 방법이야.하지만 누군가가 어떤 종류의 마법을 갖기를 바랐다. :) – Shai

+0

여기에 마법사가 없어. –