Autodesk Forgeビューアを使用してスマートフォンとタブレットに建物モデルを表示するAngular/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;
}
これは既知の問題であり、および/または私は手動で閉鎖後フォージビューアが使用するメモリを解放することができますいくつかの方法がありますか? (それは私が1つのセッションで互いの後つ以上の視聴者を開くことができるようにする必要があり、ユースケースの一部である。)
アップデート[19-09-17]
私は私を開いてみましたビューアは新しく空のangular2プロジェクトであり、一般的に使用されるメモリは少なくなりますが、メモリをクリアしないのと同じ振る舞いが適用されます(here参照)。イベントリスナーが大幅に削減されていることに気付きました。また、Forge Viewerをバージョン2.17
にアップデートしました。同じ問題がここでも適用されます。
こんにちはハイメ、私は現在フォージビューアーのバージョン '2.13'を使用しています。私はすでに新しいバージョンのビューアを試しましたが、それはイベント処理のほとんどを破ったので、最後に2.13に戻ってしまいました。 – sjoerd216
こんにちは、私は新しいバージョンに対応しようと提案しますメモリリークの問題が発生しています。ビューアで現在どのような問題が発生していますか?私は新しいバージョンへのアップグレードなしでこれに対処するためにできることがあるとは思わない。 –
2.17にアップグレードした後、 'FINAL_FRAME_RENDERED_CHANGED_EVENT'はプロジェクトでもう起動しませんでした。このイベントリスナーを 'GEOMETRY_LOADED_EVENT'とともに使用して、視聴者がいつでも使用可能な状態になったことを確認します。しかし、最初のイベントは決して始動しないので、アプリケーションはイベントが発生するのを待って立ち往生します。このイベントハンドラまたはモデルが完全にロードされたときを知る他の方法の代替手段がありますか? – sjoerd216