タスクシステム総合スレ part6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/04/03(金) 11:25:39ID:aSgRO8Wlpart5 http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/
part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
・タスクと呼ばれる実装は、非常に多岐に渡ります
古典タスクシステムについての話題は「>>2」と明示してください
そうでない場合はカスタム版であることを明示してください
・人を憎んで言語を憎まず
0002名前は開発中のものです。
2009/04/03(金) 11:26:57ID:aSgRO8WlWhite Paper - Programming
http://homepage3.nifty.com/moha/programming.html
タスクシステム
http://www5f.biglobe.ne.jp/~kenmo/program/task/task.html
CodeZine:本格的なシューティングゲームを実現するタスクシステム(タスクシステム,シューティング,ゲーム)
http://codezine.jp/a/article.aspx?aid=297
Logician Lord … 【コンピュータゲームのからくり】
※ウェブアーカイブのキャッシュ
http://web.archive.org/web/20041009222313/www.hh.iij4u.or.jp/~peto/Games/games_top.html
0003名前は開発中のものです。
2009/04/03(金) 21:08:48ID:4ENq10VK0004\_____________/
2009/04/04(土) 01:15:38ID:Xw/qJicYビシッ / ̄ ̄ ̄ ̄\
/ ̄\( 人____)
, ┤ ト|ミ/ ー◎-◎-)
| \_/ ヽ (_ _) )
| __( ̄ |∴ノ 3 ノ
| __)_ノ ヽ ノ
ヽ___) ノ )) ヽ.
0005名前は開発中のものです。
2009/04/04(土) 01:36:51ID:DtrzgWRJ(,,゚Д゚)< で?タスクシステムのメリットは説明できたの?ん?
0006名前は開発中のものです。
2009/04/04(土) 13:33:22ID:2djxF09a(,,゚Д゚)< で?『いわゆるタスクシステム』の仕組みは理解できたの?ん?
0007510
2009/04/04(土) 16:56:02ID:MhD49aWD前スレのID:EEKBitmg ◆HSP4mee/SU祭りに参加できなかった。
仕事していると辛いね。
0008名前は開発中のものです。
2009/04/04(土) 18:12:06ID:DtrzgWRJそれはすでに>>2にある
0009名前は開発中のものです。
2009/04/04(土) 18:50:27ID:CWfOh7lLこれを要求していると読んだ。
http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/264
> タスクと書くだけで君のように異常な反応を示す人を釣ることができて
> 生産性を幾分かでも削ることができる。ライバルからすればいい武器だな。
> そのライバルは他の国や民族かもしれん。
>
> こんなスレを見てしまった段階で踊る阿呆に見る阿呆だが。
0010名前は開発中のものです。
2009/04/04(土) 20:01:28ID:9125l3rK一括解放するタイミングは存在せず、仕様切りなおしもできないとして、
ID:EEKBitmgは使用期間不定の大量のサイズ不定テクスチャを
コンパクションを使わずにどう管理する?
普通にやると、だんだんメモリがフラグメントしてきて
最後にはメモリに乗るはずのテクスチャが乗らなくなるよな
俺もコンパクションは嫌いだしムダに複雑になるだけで費用対効果が薄いと思うが
仕様によっては必要悪だと思うんだが・・・別の解決策があるのなら知りたいマジで
0011名前は開発中のものです。
2009/04/04(土) 20:16:31ID:MhD49aWD0012名前は開発中のものです。
2009/04/04(土) 21:27:31ID:2djxF09aそういう部分を気にするのはR&D部署だから、開発のウチらにはカンケー無い。
0013名前は開発中のものです。
2009/04/04(土) 22:06:58ID:MhD49aWD> 一括解放するタイミングは存在せず、仕様切りなおしもできない
するな。
0014名前は開発中のものです。
2009/04/04(土) 22:21:25ID:9125l3rK偉そうに回答してくれんのは別にいいけど、せめて「コンパクション要・不要」の立場を明確にしてから言ってくれ
0015名前は開発中のものです。
2009/04/04(土) 22:41:09ID:DtrzgWRJその話とタスクシステムはどう結びつくの?
スレ違いじゃない?
もちろんタスクシステムのメリットとの話ともリンクしてるんだろうな?
0016名前は開発中のものです。
2009/04/04(土) 23:57:30ID:MhD49aWD0017名前は開発中のものです。
2009/04/05(日) 01:47:17ID:A6XSNxaWR&Dがあるような会社はタスクシステムも気にする必要無いんじゃね?
0018並列さん ◆dPfetnROQg
2009/04/05(日) 03:23:57ID:KXq+7Jyb俺は14ではないが、メモリのコンパクションを行なうには、それぞれのオブジェクトに対するstd::listのようなものが
必要になるので、(典型的な)タスクシステムに搭載されているstd::listのようなものをそのまま流用すれば一石二鳥だから、
タスクシステムはメモリのコンパクションまで行なうように拡張しておけば、タスクシステムのフレームワークとしての
利用価値がさらにあがるという風にタスクシステムとメモリのコンパクションとは密接に関係している。
まあ、このスレのアンチタスク派は、まともな規模のゲームプログラムなんて作ったことなさそうだから、
メモリのコンパクションなんてやる必要性すら理解してないんだろうけども。
0019名前は開発中のものです。
2009/04/05(日) 04:03:20ID:SofMJMSf頭おかしいんじゃない?大丈夫?
0020名前は開発中のものです。
2009/04/05(日) 04:14:18ID:XP6NPTaD馬鹿でかい連続領域を確保するものと、パーティクルみたいに小さい固定領域を大量に確保するもの
だけを別扱いに管理する、ぐらいでやりくりできてたし。
そんなの必要になるのサーバー側とかだけじゃない?
0021名前は開発中のものです。
2009/04/05(日) 04:43:57ID:SofMJMSf0022並列さん ◆dPfetnROQg
2009/04/05(日) 04:57:03ID:KXq+7Jyb> なら、テクスチャや音声や、その他mallocやnewするもの全部をタスクとして実装するの?
そんなことは誰も言ってない。
そもそもテクスチャやサウンドのような巨大なresourceにとって必要なのはメモリのコンパクションではなく、
(cacheのような仕組みを提供する)マネージメントだろ。
それはcacheを実現するためのシステムを別で用意する。
それ以外でmallocやnewを使うかだが、ゲームによっては、タスクオブジェクトとテクスチャ/サウンド等の
巨大リソース以外ではmalloc/newでのメモリ確保は不要なことが多いので、そういう作りをここでは俺は
想定している。
0023並列さん ◆dPfetnROQg
2009/04/05(日) 04:59:24ID:KXq+7Jyb> 16bit機から現行機までコンシューマ機で動的にメモリコンパクションしてるのなんて見たこと無いな。
その"現行機"にXNA環境は含まれてないの?
0024名前は開発中のものです。
2009/04/05(日) 05:02:06ID:XP6NPTaDそしてサーバー側はメーカーによるけど意外とチープな民生用32bit Linuxマシンを使ってたり
するので4Gの壁でMMUとは別の理由でメモリコンパクションが必要になったり。
クライアント側はメーカーのエージングチェック通る時間動けばいいけど、サーバー側は連続稼働時間
長いからねぇ
>>23
>その"現行機"にXNA環境は含まれてないの?
含まれてます。がネイティブじゃなくXNAで動いてるゲームはまだサンプル以外見たことが無いな。
0025名前は開発中のものです。
2009/04/05(日) 05:08:36ID:SofMJMSfでは、タスクにだけメモリコンパクションかけるつもり?意味無くない?
どっちにしろ頭沸いてるとしか思えないのだが。
0026並列さん ◆dPfetnROQg
2009/04/05(日) 05:26:56ID:KXq+7Jyb> では、タスクにだけメモリコンパクションかけるつもり?意味無くない?
メモリのコンパクションを行なうことで、CPU cacheに載りやすくなるし、
タスクに対してtraverseするときになるべくメモリをリニアにアクセスできるようになっていれば
プリフェッチした分が無駄にならないから、そこでも効果があがる。
計測してみればすぐにわかると思うが。
0027名前は開発中のものです。
2009/04/05(日) 05:31:54ID:w7j54ekv同意
もうなにいってるのかさっぱりわからない
っていうか馬鹿黙れよって感じ
0028名前は開発中のものです。
2009/04/05(日) 05:41:29ID:SofMJMSf0029並列さん ◆dPfetnROQg
2009/04/05(日) 05:46:00ID:KXq+7Jyb馬鹿はお前
>>28
> 現実問題として、リニアにアクセスなんて出来ない
出来る。
典型的なタスクシステムならタスクプライオリティを持っているので、
コンパクションのときにメモリ上でタスクプライオリティ順に並ぶように配置しなおしてやれば
タスクに対してtraverseする効率があがる。
0030名前は開発中のものです。
2009/04/05(日) 05:50:57ID:SofMJMSfそんなところをちまちま最適化しても意味無いって。
どうせ他のところが重いから。
0031名前は開発中のものです。
2009/04/05(日) 06:04:17ID:SofMJMSfやってる奴あっても、メモリ制限が厳しいから仕方なく導入しているってだけで、
速度向上を狙ったものは聞いたことが無い。
0032並列さん ◆dPfetnROQg
2009/04/05(日) 06:14:40ID:KXq+7Jyb> そんなところをちまちま最適化しても意味無いって。
そんなことないよ。
最近のプロセッサになればなるほどDRAMが(CPUに較べて)相対的に遅く、
扱うオブジェクトの数が多いとプリフェッチ出来ているのと出来てないのとでは大違いなんだが。
「他のタスクにアクセスする」部分にしても、シューティングで自機と弾との衝突判定をするなら
弾オブジェクトはメモリ上でリニアに並んでいるほうがアクセス効率が良いのは自明。
0033並列さん ◆dPfetnROQg
2009/04/05(日) 06:19:31ID:KXq+7Jyb> やってる奴あっても、メモリ制限が厳しいから仕方なく導入しているってだけで、
あんた何もわかってないね。
近代的な言語が、GCを搭載するのはメモリ制限を回避するためだけかい?違うだろ。
0034名前は開発中のものです。
2009/04/05(日) 06:35:18ID:SofMJMSfタスクシステムのタスクのコンパクションによるキャッシュヒット率の向上が有効になるのは、
小さなタスクが何万も有る場合だが、
タスクシステムの特性から、updateが仮想関数になる以上、
やってる事がチグハグなんだよ。
ストーブつけながらクーラーつけてるみたいなものだな。
0035名前は開発中のものです。
2009/04/05(日) 06:36:15ID:XP6NPTaD0036並列さん ◆dPfetnROQg
2009/04/05(日) 06:59:38ID:KXq+7Jyb> タスクシステムの特性から、updateが仮想関数になる以上、
そうとは限らない。
>>35
ずれてない。あんたもGCが何のためにあるのか理解してなさそう。
0037名前は開発中のものです。
2009/04/05(日) 09:37:40ID:w7j54ekvあんた自分がなにやってるかさっぱりわかってないじゃん
0038名前は開発中のものです。
2009/04/05(日) 11:11:35ID:3oSTBu7p・・・ハァ????
0039名前は開発中のものです。
2009/04/05(日) 14:46:01ID:ZnQmmsrk0040名前は開発中のものです。
2009/04/05(日) 15:41:58ID:MilQiQIm相変わらずタスクじゃない話題で賑わっているね。
メモリコンパクション実装する前に他にやることあるんじゃねぇの〜
0041並列さん ◆dPfetnROQg
2009/04/05(日) 18:18:06ID:KXq+7Jybあんたがわかってないだけ。内容についてこれないなら、黙れ。
>>39
そんなへたれなコードはさすがに書かない。
template typename<T> update(T& actor);
こういうtemplateを用意して、これが呼び出される。(以下略)
>>40
> メモリコンパクション実装する前に他にやることあるんじゃねぇの〜
他にやることはやってあるという前提で話している。
また>18で書いたようにこれはタスクと関係ない話題ではない。
0042並列さん ◆dPfetnROQg
2009/04/05(日) 18:25:43ID:KXq+7Jybtemplate typename<T> void update(T& actor);
で、型ごとに特殊化されたupdateを用意する。
言うまでもなく、updateはcollectionに対しても定義されてて
template typename<T> void update(const collection<T*>& actors)
{
foreach(var t in actors)
update(*t);
}
collectionはstd::vector/listを汎化したもの。foreachはマクロとでも思ってもらえれば良い。
上のようになっているので、最適化によってinliningされる。
もちろん、関数呼び出しのオーバーヘッドは存在しない。
0043名前は開発中のものです。
2009/04/05(日) 18:25:46ID:MilQiQIm1点だけ知りたいのだが、並列さんはタスクシステムをメモリコンパクション仕様で書いて実装し、実際に運用したことがあるのかい?
必然的に粒度の大きくてしかもタスク切り替えの少ない場合のみのタスクしか適用できないとおもうのだが。正気の沙汰とは思えない。
0044名前は開発中のものです。
2009/04/05(日) 19:25:11ID:ZnQmmsrk> もちろん、関数呼び出しのオーバーヘッドは存在しない。
全てのTに対して同じupdateが呼び出されるけどな。
0045並列さん ◆dPfetnROQg
2009/04/05(日) 20:48:32ID:KXq+7Jyb> 1点だけ知りたいのだが、並列さんはタスクシステムをメモリコンパクション仕様で書いて実装し、実際に運用したことがあるのかい?
もちろんだよ。ある大手の商用ゲームで使ってるよ。
> 必然的に粒度の大きくて
逆だよ。GC環境は粒度の小さいオブジェクトを大量に
newしたりdeleteしたりするのに適している。
それは、GC環境下ならnewの実装が単純化されるので
通常のheap allocとは比べものにならないほど高速だから。
>>44
もちろん。update(const collection<T*>& actors)の呼び出し側で
もうひと工夫してある。あんたなら、みなまで言わずともわかるだろ。
0046名前は開発中のものです。
2009/04/05(日) 22:29:45ID:qdg6blW7まぁわからんでもないんだけど、 new/delete する C++ オブジェクトの話だったの?
そうなるとまるで必要性がわからん。
だれか並列さんの話についていけてる人がいるのか?
0047名前は開発中のものです。
2009/04/05(日) 22:43:11ID:ZnQmmsrkあぁ、switch〜caseじゃダメっぽいから、関数テーブルにでも変更してみたか?
0048並列さん ◆dPfetnROQg
2009/04/05(日) 22:44:01ID:KXq+7Jyb> そうなるとまるで必要性がわからん。
"必要"なのではない。誰もそんなことは言っていない。
GCがあったほうが設計が楽になるというのと、
メモリのコンパクション(とオブジェクトの並び替え)を行なったほうが
メモリアクセスの効率が上がる(>>26 >>29 >>32)と俺は言っている。
0049名前は開発中のものです。
2009/04/05(日) 22:45:59ID:XP6NPTaD>それは、GC環境下ならnewの実装が単純化されるので
”GC環境”ってひとくちにいっても”タスクシステム”並に千差万別だけど…
どんな前提のGC環境なら、GC環境を構築したC/C++よりもheap allocが高速になるのか、教えて欲しいなぁ
スレッドを使わないスクリプト系言語で、同期処理が不要だから、とかheap独自管理だから、とかか?
それならスレッド使わない、heap独自管理したC/C++系の方が高速になりそうだが。
0050名前は開発中のものです。
2009/04/05(日) 22:48:37ID:SofMJMSfそれだったら、ただのstd::vectorと同じじゃん。
自分でも書いてるけど、本当ただのcollectionでしかなく、どのあたりを工夫しているのかも不明。
そのレベルのコンパクションでよいのなら、std::vectorでもしてくれる。
個人的には、タスクシステムにメモリ管理までさせている時点で糞だな。
タスクを何処にどういう風に確保するかは、タスクシステムの利用者が決めれるようにしておいた方が良い。
どういうメモリ配置にすべきかはケースバイケースで、
ベストな配置はゲームの仕様を知ってるであろうタスクシステムの利用者にしか分からない。
逆に言えば、タスクシステム内で、変なメモリ管理なんてしようとするから、
メモリコンパクションなんていう、どうでも良いことを考えなきゃいけなくなる。
ゲームの仕様も分からないのに、適切なデータ配置が出来るわけが無い。
まぁ、そうやって自分の権力の範囲を伸ばすことで、食いっぱぐれないようにしてるんだろうけどな。
老害というやつだな。
0051名前は開発中のものです。
2009/04/05(日) 22:51:31ID:SofMJMSfタスクシステムに勝手にデータを並べ替えられるのは迷惑だ。
タスクシステムはゲームの仕様を知らないからな。
0052名前は開発中のものです。
2009/04/05(日) 22:54:56ID:qdg6blW7こういう話してると、また「言うまでもなく、この最適化を行うかどうかはユーザーが
選択できるようになっている」とか返ってきそうだけど。
0053並列さん ◆dPfetnROQg
2009/04/05(日) 22:55:09ID:KXq+7Jyb> 関数テーブルにでも変更してみたか?
関数テーブルがどういうコードを指してるのか意味不明なんだが。
もしかして
var function_table = [ update<collection<TekiTask*> > , update<collection<TamaTask*> > , update<collection<JikiTask*> > ];
みたいなものを用意する話か?それなら、テーブルではなしに、
TekiTask* → update<collection<TekiTask*> >
のようなhashこそが必要だろう。
「タスクの型Tからupdate<collection<T*> >へのhashを用意してあるのか?」と尋ねるのなら、
「そういう実装でもいいけどね」と答えるが、「update<collection<T*> >の関数テーブルを用意するのか?」と
いう質問なら、「そんな馬鹿な実装にはするはずがない」と答えるよ。
0054名前は開発中のものです。
2009/04/05(日) 22:57:12ID:SofMJMSfはインライン関数で書いても同じなのに、いちいちテンプレート使うのはコンパイラへの嫌がらせか。
わざわざテンプレートでかく意図が分からない。
コンパイラによるのかもしれんが。
0055名前は開発中のものです。
2009/04/05(日) 23:04:40ID:qdg6blW7メモリアクセスの最適化が要るループの中でインスタンス単品のアドレスをキーにした
ハッシュテーブルをひくのが「いいけどね」なの?もうわけわからん。
0056並列さん ◆dPfetnROQg
2009/04/05(日) 23:07:06ID:KXq+7Jyb> どんな前提のGC環境なら、GC環境を構築したC/C++よりもheap allocが
> 高速になるのか、教えて欲しいなぁ
日本語が意味不明。
俺は、>>45 では、GC環境なら、C/C++のheap allocより高速なnewの実装が可能に
なることは言ったが、「GC環境を構築したC/C++よりも」だなんて一言も言ってない。
>>50
> そのレベルのコンパクションでよいのなら、std::vectorでもしてくれる。
これも意味不明。
std::vector<XXXTask>のようなものを用意して、XXXTask型のオブジェクトは
全部そこに突っ込む(push_back)するつもりか?
> ゲームの仕様も分からないのに、適切なデータ配置が出来るわけが無い。
その理屈はおかしい。
あんたはゲームの仕様が決まるまでnewやdeleteの実装をしないつもりか?
0057並列さん ◆dPfetnROQg
2009/04/05(日) 23:20:19ID:KXq+7Jyb> メモリアクセスの最適化が要るループの中でインスタンス単品のアドレスをキーにした
> ハッシュテーブルをひくのが「いいけどね」なの?
「メモリアクセスの最適化が要るループの中で」呼び出すだなんて
俺は一言も言ってないんだが。
どうやれば本当に効率が改善されるのか自分の頭を使って考えたらどうだ?
0058名前は開発中のものです。
2009/04/05(日) 23:21:29ID:XP6NPTaD>俺は、>>45 では、GC環境なら、C/C++のheap allocより高速なnewの実装が可能に
>なることは言ったが、「GC環境を構築したC/C++よりも」だなんて一言も言ってない。
矛盾した返答だなぁ
そのGC環境は比較対照のC/C++とは違うアーキテクチャのマシンで動いているのかい?
同じマシンならその高速とやらのheap allocと同じ原理を、高級アセンブラであるC/C++なら実装可能だろ。逆は無理だけど。
GC環境とやらがネイティブのC/C++(≠ASM)にパフォーマンスで勝負するのは勝ち目が無いんで無い?
0059名前は開発中のものです。
2009/04/05(日) 23:22:09ID:ZnQmmsrkC++っぽいけど全然違う脳内言語を使って脳内コンパイルしてるだけなら、その程度の話でいいのかもね。
0060名前は開発中のものです。
2009/04/05(日) 23:24:28ID:SofMJMSf>その理屈はおかしい。
>あんたはゲームの仕様が決まるまでnewやdeleteの実装をしないつもりか?
その理屈でいくのなら、自前のcollectionなんて実装せずにnewやdeleteを使ってれば良い話になるだろ。
ところがお前は、newやdeleteはタスクシステムの仕様に無頓着だから、
タスクシステムの仕様にあったアロケータを自前で開発すべきだと主張してる。
それに対して俺は、タスクシステムはゲームの仕様に無頓着だから、
ゲームの仕様にあった方法でデータは確保すべきだ、と返しているわけで。
0061名前は開発中のものです。
2009/04/05(日) 23:30:02ID:qdg6blW7> std::vector<XXXTask>のようなものを用意して、XXXTask型のオブジェクトは
> 全部そこに突っ込む(push_back)するつもりか?
その vector をまっすぐ走査すればキャッシュヒット率の目的は達成できるよね?
何かマズイの?
> あんたはゲームの仕様が決まるまでnewやdeleteの実装をしないつもりか?
いや、しないだろ、当然。コンパイラが一般的な実装は提供してくれるんだから。
ゲームの仕様がなければ自分で実装する目的が無い。
0062並列さん ◆dPfetnROQg
2009/04/05(日) 23:31:38ID:KXq+7Jyb何か話が噛み合ってない気がする。
俺が想定しているGC環境でのmallocは、次のコードだ。
void* malloc(size_t size)
{
void* adr = (void*)heap; // heapはbyte*
heap += size; // この分、確保した
return adr;
}
これはGC環境下ではないC/C++で書くカスタムアロケータより
十分高速だと思うが、これより速い実装が可能だと言うなら教えてくれ。
0063並列さん ◆dPfetnROQg
2009/04/05(日) 23:34:08ID:KXq+7Jyb自己レスだが、メモリを上位から下位に確保していくheapなら
void* malloc(size_t size)
{
heap -= size; // この分、確保した
return (void*)heap;
}
こうなる。こっちでもいい。
0064名前は開発中のものです。
2009/04/05(日) 23:34:12ID:qdg6blW7collection の要素型がポインタになってるけど、別に派生クラスとか update の詳細が
異なるインスタンスをいっしょに入れるわけじゃなくて、単一クラスのコレクションなの?
それなら、なおさら std::vector に生で入れたほうが速そうだなぁ。
0065名前は開発中のものです。
2009/04/05(日) 23:36:14ID:XP6NPTaDあのー、これheap allocでなくstackでない?
0066名前は開発中のものです。
2009/04/05(日) 23:37:09ID:w7j54ekv設計失敗してるのにねばってて馬鹿みたい
プログラマやる前にまず大人になれよw
0067名前は開発中のものです。
2009/04/05(日) 23:38:02ID:SofMJMSf>全部そこに突っ込む(push_back)するつもりか?
型ごちゃまぜ状態でコンパクションかけるよりは、
同じ型は同じ配列に集めてコンパクションかけた方が、まだましだろう。
同じ型のデータは連続的にアクセスされる可能性が高いからな。
型ごちゃ混ぜ状態でコンパクションかけますっていうのなら、
頭どうかしてますとしか言いようが無い。ゲームでそこまでする必要なし。
0068並列さん ◆dPfetnROQg
2009/04/05(日) 23:41:04ID:KXq+7Jybなんか話が噛み合ってない原因がわかった。
> ところがお前は、newやdeleteはタスクシステムの仕様に無頓着だから、
> タスクシステムの仕様にあったアロケータを自前で開発すべきだと主張してる。
俺は最初からそんなことは主張していない。
GC環境下のほうが、小さなオブジェクトの生成/解体には有利で、
どうせGCを搭載するなら、コンパクションをやるついでにタスクの再配置も
したほうがCPU cacheの効率があがるということを主張している。
0069並列さん ◆dPfetnROQg
2009/04/05(日) 23:42:24ID:KXq+7Jyb> あのー、これheap allocでなくstackでない?
それがGC環境下のheap allocだよ。
定期的にGCがメモリのコンパクションを行なうから、heap allocはただひたすら
メモリの上位(or 下位)に向かって確保していくだけでいいんだ。
0070名前は開発中のものです。
2009/04/05(日) 23:43:40ID:w7j54ekvもう疑いようもなく頭悪いのにw
なんでかみ合ってないとかやめてよ
きたねぇなさわんなよ気持ち悪い
■ このスレッドは過去ログ倉庫に格納されています