【问题标题】:Autodesk Viewer memory leakAutodesk 查看器内存泄漏
【发布时间】:2019-10-11 04:39:05
【问题描述】:

我在使用 forge 查看器 (v6.6.1) 的 angular/typescript 应用程序中遇到了一些大的内存问题。这个之前也讨论过:Severe memory leaks in the Autodesk Forge viewer on devices

每当我们关闭组件或路由到其他页面时,我们都会破坏当前创建的查看器。为此,我使用函数 viewer.finish();然而,它似乎并没有释放任何 GPU 内存。这在使用包含纹理的模型时最为显着。问题是,在我们的应用中打开它几次后,由于使用了太多 gpu 内存,它会崩溃。

为了查看内存使用情况,我使用了 chrome://tracing/(使用记录类别 memory-infra)。

这里有一些屏幕截图,您可以从中看到内存累积。

Initial initialisation of the page

after returning to this page after closing it

after returning to this page after closing it a third time

正如您所见,纹理下的内存建立得非常快。这只是我们使用的一个轻型模型。某些模型的构建步骤超过 250MB。

这是完成这项工作的组件代码部分。我还在 github 上提供了一个可以运行的最小 Angular 项目的链接。当您启动应用程序时,您可以使用切换按钮来创建/销毁组件并触发问题。

  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

【问题讨论】:

  • 试图终止属性工作者并删除对这三个对象的所有可能引用,但不知何故,它们仍在被引用,当查看器自行终止时,它们可能没有被正确处理。仍在与工程部核实,很快就会回复。

标签: autodesk-forge autodesk-viewer


【解决方案1】:

Engineering 的最终建议是等待 Viewer v7.0,该版本将在几周后发布以供一般访问,其中修复了多个错误并改进了内存管理。

与此同时,看看您是否有任何事件侦听器/自定义扩展可能会保留对节点等的引用 - 删除/卸载这些,看看是否有帮助。

【讨论】:

  • 能否获得 Viewer v7.0 的预览版,看看这是否为我们解决了问题?
  • 如果一切按计划进行,v7 将于下周上线,您可以致电 viewer.shutdown() 以改进对三个.js 对象的处理 - 请继续关注 Forge 博客的发布公告。
  • 期待。
  • @BryanHuang viewer.shutdown() 最后是否进入 API?我找不到它。
猜你喜欢
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 2017-11-29
  • 2011-05-21
  • 1970-01-01
  • 2012-07-06
  • 2012-01-02
相关资源
最近更新 更多