タスクシステム総合スレ part6at GAMEDEVタスクシステム総合スレ part6 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト114:名前は開発中のものです。 09/04/06 03:53:18 B8zjnpJZ >あんたが、自前でcompactionを行なうなら、自分でタスクプライオリティに >従って並び替えをしないといけないし、並び替えをした上で同じ型のcollection同士を >集めたものを用意してからupdate(vector<T>)のような関数を呼び出す必要がある。 型ごとにheapを持つようにすれば同じ型同士を集める必要はないし、 タスクプライオリティーも、変更されるその都度挿入し直せば、並べ替えを行う必要もなくなる。 当たり前だが、挿入と並べ替えだと、並べ替えの方が重い。 >「型ごとに集めることを考えて、それから並べ替える」ほうが、 >「並べ替えてから型ごとに集める」だとか「その二つを同時に行なう」より速いとは限らないんだが。 >そんな自分のやりやすい方法を言われても。 後者よりも前者の方が常に速い。 前者だと、 1.型ごとに集める処理を端折れる。 2.型ごとに並べ替えた方が速い。なぜなら並べ替えの計算量はO(n*logn)だから。 115:並列さん ◆dPfetnROQg 09/04/06 04:00:55 yXbkibtb >>114 > タスクプライオリティーも、変更されるその都度挿入し直せば、 > 並べ替えを行う必要もなくなる。 > 当たり前だが、挿入と並べ替えだと、並べ替えの方が重い。 並べ替えは毎フレームしなくとも良いが(GCが走るのはときどきなわけだし)、 タスクプライオリティは変更と同時に挿入しなおさなければならないから その比較はおかしい。 まあ、タスクプライオリティを頻繁に変更するかと言われれば 確かに普通はノーだと思うんだが、生成は頻繁に行なうわけで、生成時にタスク プライオリティが与えられていてその適切なところにinsertする コストはとても無視できない。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch