У меня большие проблемы с памятью в приложении angular / typcript, использующем forge viewer (v6.6.1).Это также обсуждалось ранее: Серьезные утечки памяти в программе просмотра Autodesk Forge на устройствах
Всякий раз, когда мы закрываем компонент или направляем на другую страницу, мы уничтожаем созданный в настоящий момент модуль просмотра.Для этого я использую функцию viewer.finish ();Однако, похоже, что он не освобождает память GPU.Это особенно заметно при использовании моделей, содержащих текстуры.Проблема в том, что после нескольких раз, открыв это в нашем приложении, он вылетает из-за большого количества используемой памяти.
Чтобы увидеть наращивание использования памяти, я использовал chrome: // tracing / (используя память категории записей-infra).
Вот несколько скриншотов, где вы можете увидеть наращивание памяти.
Первоначальная инициализация страницы
после возврата на эту страницу после ее закрытия
после возврата на эту страницустраница после ее закрытия в третий раз
Как видите, память под текстурами накапливается довольно быстро.И это всего лишь легкая модель, которую мы используем.Некоторые модели создаются с шагом более 250 МБ.
Вот часть кода компонента, которая выполняет эту работу.Я также предоставил ссылку на минимальный угловой проект на github, который вы можете запустить.При запуске приложения вы можете использовать кнопку переключения, чтобы создать / уничтожить компонент и вызвать проблему.
public viewer;
public options;
public url = 'MODEL-YOUR-URL-HERE';
@ViewChild('viewer')
public viewerContainer: any;
constructor() { }
ngOnInit() {
this.options = {
env: 'Local',
useADP: false,
language: 'en',
};
Autodesk.Viewing.Initializer(this.options, () => {
this.onEnvInitialized();
});
}
public onEnvInitialized() {
this.viewer = new Autodesk.Viewing.Private.GuiViewer3D(this.viewerContainer.nativeElement, {});
this.viewer.initialize();
this.viewer.loadModel( decodeURI(this.url), {}, () => { }, (aErrorCode) => { } );
}
ngOnDestroy() {
this.viewer.finish();
this.viewer = null;
}
https://github.com/zedero/forge-angular-memory-issue