2010-03-01 3 views
1

큰 개체 그래프가 메모리에있는 프로젝트에서 작업하고 있습니다. 도메인 객체는 실제로 '넓다'고 일반적으로 관계없는 데이터의 전체로드를 포함합니다. 어떤 종류의 게으른 로딩 모델을 구현할 생각입니다.메모리의 대형 도메인 모델

저는 현재 게으른 각 속성에 속성이있는 줄을 생각하고 있습니다. 필자는 애플리케이션 시작시 동적 프록시 유형을 작성한 후이를 전송합니다. 그런 다음 필요에 따라 로컬 확장 등록 정보 서비스를 검색합니다.

깨끗한 구현으로 누구나 전에 이렇게 해본 적이 있습니까? 감사합니다

답변

1

개체 그래프의 특성과 사용 패턴에 따라 다릅니다. 게으른 로딩 프록시 접근 방식은 신뢰할 만하지만 자체적으로 확장되지 않습니다. 많은 수의 개체에 대해 클라이언트가 동일한 속성을 묻는 사용 패턴은 많은 수의 원격 호출로 인해 원격 서버에서 성능 문제를 일으 킵니다.

서버의 메모리에 객체 그래프를 보유하고 클라이언트가 속성 데이터를 대량로드 할 수 있도록 허용합니다. 지연로 인한 지연 프록시가 훨씬 더 효율적으로 작동합니다.

대량로드는 반복되는 불변 값이있는 결과 스트림에서 크기 최적화를 허용합니다.

1

빌더 패턴은 실제로이 상황에서 꽤 잘 작동합니다. 불필요한 로딩에 관계없는 작업을 연기하고, 이러한 관계없는 특성의 실제 로딩 및 구성을 빌더 클래스로 전환하십시오.

1

또한 지연로드와 함께 WeakReference (s)를 사용할 수도 있습니다. 이것은 OutOfMemoryException으로부터 당신을 구할 것입니다.