0

一週間前、私の教授はガベージコレクションとその応答性について話しました。基本的に彼は、ガベージコレクションを使用する場合、コードが実行されるまでの遅延は常に非常に小さいと述べました。

これで、遅延は非常に小さいため、ユーザーは遅延を認識しないと言えます。

私は最終学士試験のためにゲームエンジンに取り組んでおり、現在、エンジンに選択するスクリプト言語を決定しています。


今、私は次のような状況にあります。一人称カメラでゲームを作成するとします。また、ゲームロジックがガベージコレクションのある言語で記述されているとしましょう。

これは、ゲームロジックがガベージコレクションのない言語で記述されているゲームをプレイするよりも、ユーザーが入力遅延に遭遇することを意味しませんか?

現在、遅延を生成するシステムが非常に多いため、入力ラグを予測することは非常に困難です。

たとえばinput -> gamecode executing -> graphics rendering -> rendering on the screen

gcのある言語とgcのない言語を使用した場合、どのくらいの遅延が発生するかは大まかに予測できますか? <1ms, <10ms <100ms

4

1 に答える 1

1

GCの唯一の「怖い」ことは、(1)コードの進行に合わせて、1つずつ行うのではなく、一度に多くのオブジェクトをクリーンアップするため、「感じる」速度が遅くなる可能性があることです。手動のメモリ管理を使用すると、(2)決定論的ではないため、多少予測できなくなります(ただし、思ったほどひどくはありません)。

GC以外は特定の瞬間に発生するため、コードが「常に」遅くなることはありません。実際、GCにないときは、プログラムが少し速くなると思います。これは、GCの外部では、メモリ管理メカニズムを使用しながら、GC以外の言語のようにオブジェクトをクリーンアップする必要がないためです。 GCの背後にあるということは、通常、割り当てが非GC言語よりも少し速いことを意味します。

于 2012-12-14T00:42:11.163 に答える