2017-09-14 12 views
0

Autodesk Forge 뷰어를 사용하여 스마트 폰 및 태블릿에 건물 모델을 표시하는 각도/Typescript 응용 프로그램을 개발하고 있습니다. 응용 프로그램 자체는 원활하게 실행되지만 응용 프로그램을 닫을 때 문제가 발생합니다. 응용 프로그램을 닫은 후에는 아래 이미지에서 볼 수 있듯이 (8 초 표시 주위에 응용 프로그램을 닫음) 거의 2-3 초 동안 뷰어를 열어 보니 메모리가 부족하다는 것을 알 수 있습니다 그리고 충돌. 응용 프로그램을 닫으면 Forge 문서에 설명 된대로 tearDown() 및 finish() 메서드를 호출하고 Forge 뷰어에 대한 가능한 모든 참조를 null로 설정하지만 메모리 누수가 여전히 지속됩니다.장치의 Autodesk Forge 뷰어에서 심각한 메모리 누수가 발생했습니다.

this.initOptions = { 
    path: 'url to model', 
    env: 'Local', 
    useADP: false, 
    extensions: [], 
}; 

Autodesk.Viewing.Initializer(this.initOptions,() => { 

    this.onEnvInitialized(); 
}); 

private onEnvInitialized() { 

    this.viewer = new Autodesk.Viewing.Private.GuiViewer3D(this.viewerContainer.nativeElement, {}); 
    this.viewer.initialize(); 
    this.viewer.loadModel(this.initOptions.path, {}, (doc) => { 
     // further forge viewer execution here 
    }, (errorMsg) => { 
     console.log(errorMsg); 
    }); 
} 

public ngOnDestroy() { 

    // remove all eventlisteners 
    this.initOptions = null; 
    this.viewer.tearDown(); 
    this.viewer.finish(); 
    this.viewer = null; 
} 

이 알려진 문제 및/또는 내가 수동으로 폐쇄 후 포지 뷰어에 의해 사용 된 메모리를 해제 할 수있는 몇 가지 방법이 : 이것은 내 시청자 코드의 주요 덩어리인가? (내가 하나 개의 세션에서 서로 후 개 이상의 시청자를 열 수 있어야 유스 케이스의 일부입니다.)

업데이트 [19-09-17]

나는 여는 시도 내 뷰어를 새롭게 비어있는 angular2 프로젝트에 추가하면 일반적으로 사용되는 메모리는 적지 ​​만 here과 같이 메모리를 지우지 않는 동일한 동작이 계속 적용됩니다. 이벤트 리스너가 크게 줄어들 었다는 것을 알았습니다. 또한 Forge Viewer를 버전 2.17으로 업데이트했으며 같은 문제가 여전히 여기에도 적용됩니다.

답변

0

현재 사용중인 뷰어 버전은 무엇입니까? 뷰어 버전의 최근 변경 사항 목록을 볼 수 있습니다. v2.17의 메모리 제한은 기본적으로 ON입니다. 이 LMV_VIEWER_VERSION

는 그래서 우리는 그것에 대해 연구를 계속할 수에 대해 알려주세요 입력하여 콘솔에서 정의되어 있지 않은 경우도

https://developer.autodesk.com/en/docs/viewer/v2/overview/changelog/

뷰어의 버전

확인할 수 있습니다. 건배,

+0

안녕하세요 제이미

after returning to this page after closing it

Initial initialisation of the page

, 저는 현재 포지 뷰어의 버전'2.13'을 사용하고 있습니다. 나는 이미 새로운 버전의 뷰어를 실험했지만 이벤트 처리의 대부분을 깨뜨 렸기 때문에 결국 2.13으로 되돌아갔습니다. – sjoerd216

+0

안녕하세요, 새 버전으로 이동하려고합니다. 발생한 메모리 누수 문제. 이벤트 처리를 중단시키는 뷰어로 현재 어떤 종류의 문제가 있습니까?나는 새로운 버전으로 업그레이드하지 않고 이것을 해결하기 위해 할 수있는 일이 있다고 생각하지 않는다. –

+0

2.17로 업그레이드 한 후 프로젝트에서 'FINAL_FRAME_RENDERED_CHANGED_EVENT'이 (가) 더 이상 트리거되지 않았습니다. 우리는이 이벤트 리스너를'GEOMETRY_LOADED_EVENT'와 함께 사용하여 뷰어가 사용할 준비가되었을 때 결정합니다. 그러나 첫 번째 이벤트가 실행되지 않기 때문에 응용 프로그램은 이벤트가 시작될 때까지 기다리지 못합니다. 이 이벤트 핸들러 또는 모델이 완전히로드 된시기를 알 수있는 다른 방법이 있습니까? – sjoerd216

0

위조자 버전 3.3.5에는 문제가 남아 있습니다. 그러나 문제는 조금 더 깊게 보인다. viewer.finish()을 호출 할 때 텍스쳐에 사용 된 GPU 메모리가 릴리즈되지 않는 것 같습니다.

각도에서 보는 사람이있는 페이지에서 멀리 이동할 때마다이 기능을 호출합니다. 이는 DOM의 캔버스를 파괴합니다. 또한 .finish가 메모리에서 텍스처를 제거하기를 기대합니다. 모델과 텍스처를 완전히 언로드하기 위해 호출 할 수있는 다른 함수가 있습니까?

다음은 메모리 빌드 업을 볼 수있는 몇 가지 스크린 샷입니다.

after returning to this page after closing it a third time

+0

새 질문이있는 경우 [Ask Question] (https://stackoverflow.com/questions/ask) 버튼을 클릭하여 질문하십시오. 컨텍스트를 제공하는 데 도움이되는 경우이 질문에 대한 링크를 포함하십시오. - [리뷰에서] (리뷰/저품절 포스트/18751209) –

+0

새로운 질문이 아니며 Sjoerds의 확장 기능에 더 많은 데이터가 포함되어 있습니다. Sjoerd와 동일한 앱의 문제와 정확히 관련이 있습니다. –

+0

당신은 대답으로 질문을하거나, 신축이나 확장을하지 말고, 그 곳이 아니라는 것을 이해하십시오. –