성능 최적화에서 32GB의 그래프 데이터 (노드, 가장자리 등)가 메모리에로드되어 계속 유지되는 프로젝트를 시작했습니다. 이것은 장기 실행 서비스이므로 데이터는 서비스 수명 동안 메모리에 남아있게됩니다. Gen 2 수집이 CLR에 의해 트리거되면 성능을 해치는 큰 일시 중지가 있으며 GC는 모든 것을 도달 가능한 개체로 표시하는 Gen 2를 검사합니다.GC가 일시 중지되어 성능 문제가 발생했습니다.
내가 알고 싶은 것은 많은 양의 데이터를 메모리에 보관해야하는 관리 응용 프로그램에 사용할 수있는 전략이 있다는 것입니다. Gen 2 컬렉션이 실행되는 것을 방지하는 가장 좋은 방법은 무엇입니까?
Gen 2를 절대 실행하지 않으면 Gen 2로 만들지 만 영원히 살아 있지 않은 개체가 누출됩니다. 응용 프로그램의 기능에 따라 많은 객체가있을 수 있습니다. – delnan
죄송합니다. 그런 긴 멈춤을 막을 수있는 전략이 있습니까? 또는 관리되는 런타임을 사용하여 이러한 종류의 응용 프로그램을 구현하는 것은 좋지 않은 아이디어입니까? –
@itadapter 감사합니다. 저는 더 이상 그 회사에서 일하지 않습니다.하지만 그것은 결국 비 관리 상태에 대한 마샬링을 수행 한 결과입니다. 그리고 당신 말이 맞아서 문제가 해결되었습니다. –