openGl 三角形メッシュを取得して 3ds ファイルに変換するメソッドがあります。このメソッドは と呼ばれexportShape()
ます。この変換を実行するexportShape()
には、大量の非常に大きなベクトルと hash_maps が作成されます。exportShape()
現在、 が呼び出されたコードの最後の行から次の行に移動するexportShape()
には、最大で 5 分かかる場合があります。すべてのローカル ベクトルと hash_maps をグローバル スコープに移動すると、予想どおりメソッドが即座に存在するため、ローカル変数の非常に大きなスタックを空にするために、このすべての時間が費やされていると確信しています。
これらすべてのローカル データ構造をわずか数秒で設定できるのに、スタックからポップするには数分かかるのはなぜですか? exportShape()
スタックを残してクリアするプロセスを最適化するにはどうすればよいですか?
編集:
削除されるオブジェクトには、文字列、double、および int のみが含まれ、カスタム デストラクタは含まれません。
私は自分の問題をかなり解決しました。リリース モードで実行すると、パフォーマンスが大幅に向上します (最大 20 倍)。それでも、プロセスはまだ数秒間ハングします。他にできることはありますか?