トップページgamedev
1001コメント504KB

タスクシステム総合スレ part5

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/02/19(木) 02:21:01ID:k4ODtuXP
タスクシステムについての議論、相談、質問、雑談などのスレです

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」と明示してください
 そうでない場合はカスタム版タスクであることを明示してください

・人を憎んで言語を憎まず
0650並列さん ◆dPfetnROQg 2009/03/07(土) 02:52:08ID:cewi3IDn
>>648
> Q:タスクシステムは正確には並列か?
> A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
>  タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。
> たったこれだけのことが何で分からないのか。

Qが間違っている。誰もそんなQをしていない。詳しくは>>649
0651並列さん ◆dPfetnROQg 2009/03/07(土) 03:03:47ID:cewi3IDn
俺、もう寝る。

どうか、ID:EEKBitmg ◆HSP4mee/SU は、 ID:ZZNOCL1sの相手をしてやって欲しい。

ID:EEKBitmg ◆HSP4mee/SU の書く内容は、技術的に間違ってることも多々あるし、態度も生意気だけど、
日本語は意味明瞭だし、技術用語の使い方も比較的正しいので俺としてはかなり好感が持てる。

まあ、勉強熱心なんだろうな・・。
0652名前は開発中のものです。2009/03/07(土) 10:03:00ID:8u/3vapK
なんか良く分からんが、お前らの並列と並行の定義はこれで合ってるの?
http://docs.sun.com/app/docs/doc/819-0390/mtintro-6?l=ja&a=view
0653名前は開発中のものです。2009/03/07(土) 10:21:13ID:ZZNOCL1s
まず並行でないなら並列化できないわけで。
逆に、並列化不可能なら、並行でない。
というか、むしろ今まで並行の意で並列と言っていたのだが。

>スループットがN倍になっていなければ
>pureな並列とは呼べないので並行ではない
は正しい。

順序がある処理は並行ではない。
0654名前は開発中のものです。2009/03/07(土) 10:22:50ID:ZZNOCL1s
http://journal.mycom.co.jp/articles/2006/05/15/bsd3/
俺はこっちかな。
0655名前は開発中のものです。2009/03/07(土) 10:43:57ID:8u/3vapK
>>652 >>654
同じだとおもうけどw

>順序がある処理は並行ではない。
いや、順序があっても並行は並行だろう。

ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
仰々しく「並行」だの「並列」だの言うな、と主張しているように見えるなあ。
ID:ZZNOCL1sは実践的な話をしていて、
並列さんは字面通りの一般的な並列の定義に沿って話しているだけに見える。

というのは深夜の時点で並列さんも悟っているように見える。
0656名前は開発中のものです。2009/03/07(土) 10:53:23ID:ZZNOCL1s
>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので

並行化によって待ち時間が減ったりするので、スループットは向上するが、
1倍の基準点が不明。
0657並列さん ◆dPfetnROQg 2009/03/07(土) 10:57:38ID:cewi3IDn
>>653
> というか、むしろ今まで並行の意で並列と言っていたのだが。

あんたは、全然話にもならない。

専門用語を勝手に本来と違う意味で使っておいて
相手に日本語が読めないだの何だの言うのは本当、勘弁して欲しい。
0658名前は開発中のものです。2009/03/07(土) 11:06:08ID:ZZNOCL1s
>いや、順序があっても並行は並行だろう。
順序がある処理は並行化できないよ。
例えば、処理Aと処理Bがあって、
BはAの後でないと実行不可だとする。
この場合、AとBを並行に処理することは出来ない。
0659名前は開発中のものです。2009/03/07(土) 11:06:20ID:cMprZFoi
>>655
> ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
そんな話じゃないでしょうに…

あと
>並列さん
>悟っている
なんか気持ち悪いです
0660並列さん ◆dPfetnROQg 2009/03/07(土) 11:13:36ID:cewi3IDn
>>658
> 順序がある処理は並行化できないよ。

それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。

本当、専門用語を勝手に意味を作り替えんなと言いたい。

>>659
気持ち悪いのはお前。お前はいらない子だから死んでくれ。
0661名前は開発中のものです。2009/03/07(土) 11:17:08ID:ZZNOCL1s
>>657
お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。

>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
↑何に対する1倍かはしらないがな。
0662並列さん ◆dPfetnROQg 2009/03/07(土) 11:25:40ID:cewi3IDn
>>661
>>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>↑何に対する1倍かはしらないがな。

そこが読めてないのお前だけだろう。

「concurrentな処理は、Nコアであっても、単一コアで実行したときの1倍以上のスループットが出ない」の意味。
0663並列さん ◆dPfetnROQg 2009/03/07(土) 11:31:14ID:cewi3IDn
>>661
> お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。

どこをどうやればそう読めるのか俺は知りたい。

並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
単一か複数かの差のみ。そんなことは誰でもわかっている。

その用語を勝手に違う意味に使ってたのはあんただろ。
俺には、頭がおかしいとしか思えない。

その頭のおかしいあんたを唯一擁護しているのは ID:cMprZFoi だけ。

こいつは、あんたが書き込みした直後にしか出てこない。どうせこれもあんただろ。
0664名前は開発中のものです。2009/03/07(土) 11:36:14ID:92TsYx3X
カプコンのMTフレームワークみたいなマルチコアでのパフォーマンスに特化した設計の
フレームワークなら並列云々の話になると思うが…

あれもタスク進化系の一種なのか?ちょっとタスクって守備範囲広すぎ。

あれはコア数がパフォーマンスに直結する造りだね。
順序の依存性のある処理と無い処理をグループ分けして、並列で問題ないケースは複数コアで同時計算。
順序の依存性がある処理との同期スケジューリングをフレームワークが管理って感じで。

ゲーム中には依存性のある処理と無い処理があるから、まぁ複数コアを有効に使おうと思うと
こんな感じな設計に行き着くんだろうね。
0665並列さん ◆dPfetnROQg 2009/03/07(土) 11:40:55ID:cewi3IDn
ID:EEKBitmg ◆HSP4mee/SUはまだ良かった。

HSP使いのプログラミング経験の浅い世間知らずのクルクルパーだが、
そのわりには用語の使い方はまともだし、勉強もよくしていると思っていた。

俺は専門用語を勝手に俺解釈の用語とすり替えて話す奴とは
面倒くさいので話をしたくない。

このスレはどうせみんな常駐してるようなもんなんだから、みんなコテハン
にすればいい。それそれぞれが嫌な奴をNGリストに入れておけばいいと思うんだがな。

そんなわけで ID:ZZNOCL1sは俺をNGリストに入れておいてくれ。
お前と話をするのは疲れる。
0666名前は開発中のものです。2009/03/07(土) 11:49:53ID:ZZNOCL1s
>それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。
実際OSなんかは各スレッド間に依存関係が無いものと見なして並行処理しているわけで。
0667名前は開発中のものです。2009/03/07(土) 11:52:30ID:8u/3vapK
>>658
それが実質直列だってことは分かるんだけど。

とりあえず、俺が何を考えているのかと言うと、
動き方が実質直列であっても、それぞれ別のスタック領域を持ってる点が違うだろ?
別々のコンテキストを持っている。
その辺を区別するのに「実行効率ゼロの並行」も俺は並行と呼んでただの直列と区別していた。

要するに俺はコアが何個でそのPCがどこ指してるのって部分だけで並行か並列かって言ってた。

んで、一般的定義はどうなのと思ってググった先を見てみると、
コンテキストがどうのというのは論点じゃ無いような気がしてきた。

もうちょい調べてみるわ。
0668並列さん ◆dPfetnROQg 2009/03/07(土) 12:05:02ID:cewi3IDn
>>666
> いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。

あんたの「並行処理」について持ってる勝手なイメージは知らんが、
優先順位がついていてそれぞれのタスクを逐次的に処理していく場合も
(そのタスクが終了後に消滅しないなら)「並行処理」と呼ぶ。

http://en.wikipedia.org/wiki/Concurrent_computing

> Concurrent programs can be executed sequentially on a single processor
> by interleaving the execution steps of each computational process

「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら
シングルプロセッサによって逐次的に実行される」

計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
何ら関係がない。

・実行箇所をインターリーブしながら(タスクからリターンしてもタスクは
通例存在していて)

・シングルプロセッサによって(ある瞬間を見たときにつねにひとつの
プロセッサしかタスクを実行していない)

この二つを満たしているなら、並行処理。
0669名前は開発中のものです。2009/03/07(土) 12:09:24ID:ZZNOCL1s
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
どこにそんな定義があるんだ?
0670並列さん ◆dPfetnROQg 2009/03/07(土) 12:10:23ID:cewi3IDn
>>667
何を言いたいのかよくわからないが、>>668の説明は理解できる?
0671並列さん ◆dPfetnROQg 2009/03/07(土) 12:11:16ID:cewi3IDn
>>669
>>668
0672名前は開発中のものです。2009/03/07(土) 12:26:24ID:ZZNOCL1s
並行計算
http://ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E8%A8%88%E7%AE%97
>タスク群は1つのプロセッサ上で動作する場合、複数プロセッサ上で動作する場合、
>ネットワークを介した分散システムで動作する場合が考えられる。

663 名前:並列さん ◆dPfetnROQg [sage] 投稿日:2009/03/07(土) 11:31:14 ID:cewi3IDn
 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
 単一か複数かの差のみ。そんなことは誰でもわかっている。

Wikipediaの人は分かってないみたいですよ。
注意してきたらどうなんですかね。
0673名前は開発中のものです。2009/03/07(土) 12:42:43ID:ZZNOCL1s
>>668
>計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
>何ら関係がない。

だから、並行処理では処理の依存性は考えない=依存性は扱わない=依存性は扱えない。
扱わないのは扱えないから扱わないの。
実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。
各スレッドを並行と見なして実行する。
処理に依存性がある場合はプログラマが自前で同期オブジェクトとかつかってシコシコやる。

一方、タスクシステムでは処理の依存を優先順位という形で明示的に扱うのが一般的。
各タスクを並行とみなしているわけではない。
0674名前は開発中のものです。2009/03/07(土) 12:44:25ID:92TsYx3X
いつのまにか
並行・並列処理の単語の定義のスレになってるな。

自然言語の単語の定義なんてどこまでいっても曖昧なのに…
自分の言う「臭い」と他人の言う「臭い」が同じという保障なんて誰にも出来んよ

確かなのは人工言語で書かれたソースのみ。
0675並列さん ◆dPfetnROQg 2009/03/07(土) 12:44:25ID:cewi3IDn
>>672
ざっと見たけど日本語のwikipediaのほうは、ひどいな。

これとか
> 並行性のための構造を備えた最も一般的な言語はJavaとC#である。
なんでだよと突っ込みを入れたくなる。

これ書いてる奴は、thread生成が出来るからJavaとC#を入れてるんだろうけどひどいにもほどがある。
C#のyieldによるcontinuationは確かに並行スレッドなんだが、それならJavaを含めるのはおかしい。

日本語のwikipediaの「並行性」の項目もひどいな。なんだよこれ。

ちょっとwikipedia行って暴れてくるわ。
0676並列さん ◆dPfetnROQg 2009/03/07(土) 12:47:15ID:cewi3IDn
>>674
> 自然言語の単語の定義なんてどこまでいっても曖昧なのに…

専門用語は、限りなくstrictに定義されてるべき。

そうじゃなきゃ論文とか意味のないものになってしまう。
0677名前は開発中のものです。2009/03/07(土) 12:50:58ID:ZZNOCL1s
>>668
wikipediaを引用しているようだが、途中で切れているようだが。

>「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら
>シングルプロセッサによって逐次的に実行される」

の後ろには、実際には

or executed in parallel by assigning each computational process to one of a set of processors
that may be in close proximity or distributed across a network.

が続いている。
自分の都合の良いところだけを掻い摘んで引用する根性の悪さ。

結局、

>並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
>単一か複数かの差のみ。そんなことは誰でもわかっている。

は間違い。
0678並列さん ◆dPfetnROQg 2009/03/07(土) 12:52:11ID:cewi3IDn
>>673
> 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。

それはダウト。

実際のOSにはプロセスのpriorityがあって、それに従ってスケジューリングされる。
割り込みなんか特にそう。あるプロセスの実行が他プロセスの実行より優先されることは多々ある。

キーボードイベントが発生したら、その処理が優先される。そこには明確な実行順序がある。

そんな機能すらない、もっとprimitiveなOSの話をしているなら、まあそれはそれでいいけど
「実際のOS」と書かれるとWindowsやらLinuxやらを想定しているのかと俺は思ってしまう。
0679名前は開発中のものです。2009/03/07(土) 13:02:13ID:ZZNOCL1s
>>675
お前がひどいという日本語版の、
「並行性のための構造を備えた最も一般的な言語はJavaとC#である。」
は英語版のページにある
「Today, the most commonly used programming languages that
 have specific constructs for concurrency are Java and C#. 」
の訳なわけだが。
そしてその英語版のページを引用して、
「これが並行処理の定義だ!」と言っていたのがお前なのだが。
さらにその引用も自分の都合のいいところだけを引用するという正確の悪さ。
「〜又は〜」と書いてあるのに、「又は」以降をバッサリカット。
0680名前は開発中のものです。2009/03/07(土) 13:05:44ID:ZZNOCL1s
>>678
プロセスのプライオリティーは必ずしも守られるわけではない。
あれは、CPUリソースに対する優先順位であって、処理に対する依存関係を表すものではない。
現にマルチプロセス環境だと、プライオリティーの高いものと低いものが同時に実行される。
0681並列さん ◆dPfetnROQg 2009/03/07(土) 13:05:45ID:cewi3IDn
>>677
それなぁ、「executed in parallel」以下は敢えて省略した。

これを「根性の悪さ」と言われるのはわからないではないが、いま俺が問題としているのは、
「concurrent thread」 とか「parallel thread」というときのconcurrentとparallelの意味の違いだ。

「concurrent computing」という学問分野があって、その学問分野は広範で
いわゆる分散コンピューティングみたいなことまで研究対象としている。

本来、concurrentの定義にparallelとか出てくるのはおかしいのだが(それだとconcurrentとparallelとの
差が無くなってしまう)、「concurrent computing」の分野においては、「concurrent program」の意味は、
かなり拡大解釈されている。だから、その部分をはしょった。

「concurrent computing」のconcurrentを援用するのがあまり良くなかったと言われれば、まあ、それはそうなのだが。
0682名前は開発中のものです。2009/03/07(土) 13:09:34ID:Fbn5zOAB
並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。
んじゃないの?

独立した概念(関連はあるけど)なんだから、>>660
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
はおかしいと思う。
concurrentに作っておけば、parallelに実行しやすいんだし。
0683並列さん ◆dPfetnROQg 2009/03/07(土) 13:17:17ID:cewi3IDn
>>680
うむ、それは正しい。

>>682
ああ、そうか。そういう意味では、660はおかしいし、書き方が悪いな。
これについては反省。すまんかった。> ID:ZZNOCL1s
0684名前は開発中のものです。2009/03/07(土) 13:19:11ID:ZZNOCL1s
用語の定義をめぐって、wikipediaと格闘するような人とは議論したくない。
0685名前は開発中のものです。2009/03/07(土) 13:20:00ID:ZZNOCL1s
お互い疲れたと見える
0686並列さん ◆dPfetnROQg 2009/03/07(土) 13:24:11ID:cewi3IDn
>>682
> 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
> 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。

この定義に基づいて古典的なタスクシステムのタスクについて語ると

・古典的なタスクシステムのタスクは、「並行」。
・実行順序に厳しい制約があるとみなすなら、「並列」化はできない。

ところが実際のゲームでは、タスク間に依存関係がない部分が結構あるので
部分的に「並列」化できる。

この「並列」化によって、コア数N×0.7ぐらいのパフォーマンスは出る。

で、この「並列」化を古典的タスクシステムを進化(?)させて書けるようにすれば
いいということだな。
0687並列さん ◆dPfetnROQg 2009/03/07(土) 13:24:58ID:cewi3IDn
>>684
俺のことは、NGリストに入れておいてくれ。

最初に682のように書いてもらえれば、俺はすぐに理解できたのだが。
0688名前は開発中のものです。2009/03/07(土) 14:32:04ID:NOayWFQU
これにて一件落着
0689名前は開発中のものです。2009/03/07(土) 14:39:01ID:ZZNOCL1s
おれは、>>682と同じ意見ではない。

>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。

これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
必要だと考えている。

並行性
http://ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E6%80%A7

だから、

1.並行でなければ並列化できない。
2.タクスの処理順位を考慮するようなタスクシステムは、すべてのタスクが互いに並行というわけではない。
3.ゆえに、タスクシステムを並列化するならば、並行なタスク同士を抽出する必要がある。

と考え、

さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
0690名前は開発中のものです。2009/03/07(土) 15:29:42ID:8u/3vapK
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。

俺もこう思ってた。
んでそうハッキリ書いてある資料を探してるんだけど、見つからない。

>並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、必要

次からこっちの定義で話すわ。
0691名前は開発中のものです。2009/03/07(土) 15:37:28ID:92TsYx3X
>>689
>さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
MTフレームワークは処理順の依存の有無でタスク分けてマルチコアで同時に複数タスク動かしてるけど
これは処理順位を考慮するシステムだから「並行でない」のかな?
0692名前は開発中のものです。2009/03/07(土) 15:42:35ID:ZZNOCL1s
だいたいちょっと考えれば分かることだが、並行の定義が、
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
だと、いわゆるオブジェクトと呼ばれるものは全部並行ってことになっちまうだろ。
コンテキストが同時に存在できないオブジェクトなんて、まあ無いからな。
言葉としての意味が無くなる。
0693名前は開発中のものです。2009/03/07(土) 15:56:08ID:ZZNOCL1s
>>691
もしはじめから並行なら、MTフレームワーク自体いらないでしょ。
0694名前は開発中のものです。2009/03/07(土) 16:00:29ID:92TsYx3X
>>693
>もしはじめから並行なら
どこにそんな前提が?
0695名前は開発中のものです。2009/03/07(土) 16:36:27ID:E0xOAlNR
>>689
>これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの?
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
と同じ事を言ってるだけのような。

>1.並行でなければ並列化できない。
は違うと思う。
並行でない命令列も、依存関係が無ければ並列化できる。
現にCPUの中でシリアルセマンティクスを満たしつつ並列実行が普通におこなわれている。
そういう命令列は本質的に並行だった?違うでしょ?スーパースカラで並列に実行される命令は、
異なるコンテクストを持ってるわけじゃないんだから。


あと細かいことだけど、順位と順序は全然意味違うんだから、
ちゃんと使い分けてくれないと読み辛いよ。
0696名前は開発中のものです。2009/03/07(土) 18:22:05ID:UcXZ5wF9
でも依存関係があるかないかなんて並列で実行してんのにどうやってわかんだろね
くる値によって依存関係があるかもわからんしないかもわからん
ごった煮だとそういうソースになってしまうな
0697名前は開発中のものです。2009/03/07(土) 18:30:21ID:rbzzI5lu
ID:UcXZ5wF9
↑(・∀・)↑
ウンコちゃんインしたお
0698名前は開発中のものです。2009/03/08(日) 18:34:25ID:ryll+mdy
>>695
> >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
> ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの?
> >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
> と同じ事を言ってるだけのような。

例えば、コンテクストが共有されている場合などでは、
コンテクストは同時に存在できるが、同時に実行はできない。
具体的には、オブジェクトAがオブジェクトBの参照を内部に保持している場合など。
オブジェクトAはオブジェクトBとコンテキストを共有しているということになり、
オブジェクトAとオブジェクトBは同時に存在できるが、同時に実行は出来ない。


>並行でない命令列も、依存関係が無ければ並列化できる。

並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。
並列化とは、並行に処理することだから、並行な処理しか並列化できない。

自動並列化
http://ja.wikipedia.org/wiki/%E4%B8%A6%E5%88%97%E5%8C%96
>プロセッサで「並行」に実行されるようにする。

スーパースカラ
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9
>プロセッサ内の冗長な実行ユニットを使って「並行」して処理される。
0699名前は開発中のものです。2009/03/08(日) 18:39:37ID:ryll+mdy
>>694
ヒント:背理法
07006982009/03/08(日) 19:26:02ID:ryll+mdy
訂正するけど、
コンテクストが共有されていても、read-onlyな場合は並列化可能だね。
書き込みするとアウトだけど。
0701名前は開発中のものです。2009/03/08(日) 19:27:58ID:0j+yjPij
>>698
なんか色々と変だよ。


>例えば、コンテクストが共有されている場合などでは、
>コンテクストは同時に存在できるが、同時に実行はできない。
共有されているのに同時に存在するってどういう意味?
コンテクストはいくつあるの?

>具体的には、オブジェクトAが(以下この段落略)
オブジェクトとコンテクストがごっちゃになってる。
オブジェクトAがオブジェクトBへの参照を内部に保持していても、
コンテクストがいくつあるのかという問題とは関係無いよ。
オブジェクトAとBを同時に実行はできない?オブジェクトを実行するってどういう意味?

この辺は、>>692の勘違いと同じ匂いがする。
てか>>692さんなのかな。
0702名前は開発中のものです。2009/03/08(日) 19:30:14ID:0j+yjPij
んが。改行多過ぎ言われた。
701の続き。


>並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。
「依存関係が無い部分」を「並行な部分」とは呼ばないよ。
いや呼ぶのは自由だけど、少なくとも聞いたことないよ。
いや聞いたことないだけかもしれないけど。

>並列化とは、並行に処理すること(以下略)
×。

もうちょっと詳しく言うと・・・
 「並列化とは、並行に処理すること」
という言葉それだけを見るなら、○。
でも、そこに出てくる「並行」という言葉は、並列という言葉を説明するための
「(同時)並行」という意味であって、このスレでここまで長々と議論してきた
並行(concurrent)とは意味が違うよ。
(「並列」を説明するのに「並列」と言っても仕方が無いからね)

二つ挙げてくれたwikipediaの説明に出てくる「並行」も、同じように「並列」を
説明するための「並行」であって、ここに引っ張り出してきても意味が無いよ。
0703名前は開発中のものです。2009/03/09(月) 12:41:05ID:2btSBxrR
大変だ!タスク信者が息してないぞ!
0704名前は開発中のものです。2009/03/09(月) 13:31:41ID:+h98nuCN
つまらん煽りイラネ
0705名前は開発中のものです。2009/03/09(月) 14:16:42ID:EugqMYhT
本人は面白いと思って書いてんだろ
0706ID:EEKBitmg ◆HSP4mee/SU 2009/03/10(火) 01:19:32ID:W7jNDZ1N
厨は『並行処理』という言葉を使ったけど、ノートを読み返したら『並行動作』となっていた。
=『擬似並列動作』のことを云いたかったの!微妙に書き間違えてた?と書こうと思ったら
>>637-以降で怖いおじちゃん達が深夜の泥沼バトルが展開されてあれよあれよと言う間に
みんな深淵の彼方へ飛んでいってしまった。ニーチェの警告に耳を傾けない者はみんな
闇に飲まれちゃうんだ。恐ろしいことだ
0707ID:EEKBitmg ◆HSP4mee/SU 2009/03/10(火) 01:20:59ID:W7jNDZ1N
俺は元々>>2の話をしてて、これはどこをどうひっくり返しても逐次処理・直列処理してる。
ところが>>632のタスクシステムは直列処理ではなくどっちかっつーと『並列』らしい。

たぶん>>632の云うタスクシステムは>>2とは別物か、あるいは並列ではなくて
『擬似並列動作』とか『並行動作』のことをいってるのかなーとESPした。それが>>635

>>2の『システム(笑)』部分が提供するものは
 ・粗末な侵入式の連結リスト
 ・それを周期的にナメナメしてディスパッチするショボイ仕掛け
だけ。>>2はこの『システム』部分をユーザー定義の逐次処理・直列処理に使ってるけど
ユーザー定義の並行動作に使うこともできるっちゃできる
例えば組み込みシステムでは、異なる割り込みハンドラからの指示でスリープ状態から
復帰するタスクとかあるからね




0708ID:EEKBitmg ◆HSP4mee/SU 2009/03/10(火) 01:36:39ID:W7jNDZ1N
あるいは、敵をやっつけた時の爆発エフェクト。これの破片・パーティクルの一個一個を
タスクとして登録してるとする。(そんな無駄なことしたくないけど、する奴もいるだろう)
破片・パーティクルのタスクは他のタスクとの作用なんてないとする。ならばこれらは
確実に並行動作してる

逐次処理・直列処理で並列動作してる。だが並列動作じゃない
0709ID:EEKBitmg ◆HSP4mee/SU 2009/03/10(火) 01:37:17ID:W7jNDZ1N
>>708
×逐次処理・直列処理で並列動作してる。だが並列動作じゃない
○逐次処理・直列処理で並行動作してる。だが並列動作じゃない
0710ID:EEKBitmg ◆HSP4mee/SU 2009/03/10(火) 02:18:01ID:W7jNDZ1N
>>2のシステム(笑)はなんで並列動作できないの?

一本の連結リストにみんなチャンポンにしてぶち込んでる時点で
別スレッドで同時並行的に弄繰り回されるということを考えてないだろ
タスク間通信に必要な同期のメカニズムを提供していないのもそう
シングルスレッドで逐次処理するという前提だからバッサリ省いてる

次に、>>2のTCB(笑)とかいう構造体のプライオリティというパラメータは
priority-rankingではなくpriority-sequenceとして使われており、異様。
これは処理順序を表しており、この順序でソートして順次処理される
そういう前提でタスク(ジョブ)の内容を記述してる。順序が狂ったら動かない
0711名前は開発中のものです。2009/03/10(火) 12:53:53ID:GPL7IZe+
>>707

>ユーザー定義の並行動作に使うこともできるっちゃできる
できるっちゃできる、じゃなくて、ゲームオブジェクトの並行動作を記述することが
そもそもタスクシステムの目的なんじゃないの?
オブジェクトごとのデータとコンテクストをひとまとめにして自律的な行動を
自然(←人によって感じ方は違うだろうけど)な形で書ける(気分になれるw)ことと、
オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること、
の2点を、素朴な形で実装したのがタスクシステムの良い点だったと思うんだけど。


>>710

>>2のシステム(笑)はなんで並列動作できないの?
特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、
それらを並列動作させることはできるんじゃないの?
(そういう番号をプライオリティと呼ぶことの是非は別として)
別に誰も、全てのタスクを並列動作させることなんか最初から期待してないと思うけど。

かなり上の方に出てた自動的に並列動作させる云々の話も、そういうプライオリティの
タスクに限って、プロセッサ数に合わせて並列でディスパッチするような拡張も考えられる
のではないか、という話だったと理解してたんだけど。
0712名前は開発中のものです。2009/03/10(火) 14:14:14ID:arIRXx6m
http://pc.watch.impress.co.jp/docs/2009/0305/kaigai493.htm
> ゲームプログラム本体のコードは、OSのコードと同じように、
> 整数演算中心で小さな範囲での並列しかできず、
> 基本的には逐次実行しなければならないコードがほとんどだ。

これが古臭いタスクのことを指しているとは考えられないし
並列ネタはタスク関係無くね?
0713名前は開発中のものです。2009/03/10(火) 17:38:59ID:DtkxsGym
マルチプロセッサでマルチスレッドしたいならそう拡張すればいいんとちゃう?
シングルプロセッサが前提の時代に書かれた物に難癖つけるのも大人げないと思う
ていうか俺は現在でもマルチスレッドなんてやりたくない
0714名前は開発中のものです。2009/03/10(火) 18:22:37ID:9N7ATqdV
別にマルチスレッドなんて必要ならやりゃいいじゃん
裏でローディングしながらゲーム動かすなんて別に難しくもなんともねーし
ただ、ゲームオブジェクトにやる意味は無さそうだけどね
0715名前は開発中のものです。2009/03/10(火) 18:42:31ID:+MsrlA3X
そういやフルにディスクアクセスしてても重たくなったりカクついたりしないのかね?
0716名前は開発中のものです。2009/03/10(火) 19:16:57ID:9N7ATqdV
>>715
やってみりゃいいじゃん
0717名前は開発中のものです。2009/03/10(火) 19:47:23ID:+MsrlA3X
>>716
やってみた

ガックガクになった
0718名前は開発中のものです。2009/03/10(火) 20:01:50ID:9N7ATqdV
そうか市販のゲームは普通にできてるのに不思議だな
0719名前は開発中のものです。2009/03/10(火) 21:27:13ID:LXtgug0h
裏でローディングなんてDMA時代からとっくにやってます。
0720名前は開発中のものです。2009/03/10(火) 22:07:24ID:OHC3eltB
>715
普通非同期アクセスするだろ。
JK
0721名前は開発中のものです。2009/03/10(火) 22:48:52ID:GPL7IZe+
>>711
>特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、
は、オブジェクト群じゃなくてタスク群と書くべきだったね。
なんか混ざっちゃった。


>>715
自分も昔から気になってた。
ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、
消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。
それともDMAとかで消費されるバンド幅は、割と安定して予測できるもんなんだろうか。
その辺を実際にいじった経験が無いし、Web上でも情報を見た覚えが無いから分からないんだ・・・。
0722名前は開発中のものです。2009/03/10(火) 23:19:25ID:DFTfic3i
>>721
> ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、
> 消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。
もちろん、なる。

だから RPG のように「どうしても間に合わなかったらフレーム描画をスキップしてもおk」な
ゲームでは使うが、対戦格闘とかだと避ける。
0723名前は開発中のものです。2009/03/10(火) 23:58:04ID:OHC3eltB
フルにディスクアクセス行ったところで、光学ドライブからの転送量なんてたかが知れてるからな。
0724ID:EEKBitmg ◆HSP4mee/SU 2009/03/11(水) 00:28:43ID:xmrBPpjK
>>711
厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない
厨が目にすることができる資料から分かること。それは

ジョブ1を分割したものをタスクT11,T12,T13,…,T1jとし、ジョブ1を逐次処理したい
ジョブ2を分割したものをタスクT21,T22,T23,…,T2jとし、ジョブ2を逐次処理したい
ジョブ3を分割したものをタスクT31,T32,T33,…,T3jとし、ジョブ3を逐次処理したい
・・・
ジョブi を分割したものをタスクTi1 ,Ti2 ,Ti3 ,…, Tijとし、ジョブi を逐次処理したい

                  ──順次処理─→
WAIT_VBLANK then execute[T11,T21,T31,…,Ti1]   │逐
WAIT_VBLANK then execute[T12,T22,T32,…,Ti2]   │次
WAIT_VBLANK then execute[T13,T23,T33,…,Ti3]   │処
…                                    │理
WAIT_VBLANK then execute[T1j ,T2j ,T3j ,…,Tij]  ↓


以上が>>2の『システム』部分がやってくれること
0725ID:EEKBitmg ◆HSP4mee/SU 2009/03/11(水) 00:38:10ID:xmrBPpjK
>>724
これだけ見ると協調的に並行動作させることが「できる」仕組みと分かる
でも、>>2で紹介されるこれの使い方のお手本、つまりタスクの中身を見ると
何か怪しげなことしてる。走査回数とメモリ消費をケチるためにプライオリティ
というものを使ってる。以前に出てた話だけど、something(t+Δt)を求めるために
参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる
本来なら並行であるはずの関係を直列の関係にしてるというか、なんていうの?

並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ
並行動作というかフェイク並行動作してるんだよね
0726ID:EEKBitmg ◆HSP4mee/SU 2009/03/11(水) 00:58:38ID:xmrBPpjK
>>711
>オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること

これって何?GCしてるの?どういうタイミングで?
それってメモリアロケータの都合じゃないの?関係ねー気がする
0727ID:EEKBitmg ◆HSP4mee/SU 2009/03/11(水) 01:12:12ID:xmrBPpjK
まぁ、なんだ。厨的に思うのは

>                  ──順次処理─→
>WAIT_VBLANK then execute[T11,T21,T31,…,Ti1]   │逐
>WAIT_VBLANK then execute[T12,T22,T32,…,Ti2]   │次
>WAIT_VBLANK then execute[T13,T23,T33,…,Ti3]   │処
>…                                    │理
>WAIT_VBLANK then execute[T1j ,T2j ,T3j ,…,Tij]  ↓

タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると
↑みたいな、限りなくどうでもいいことしかしてないということがわかる

これがやりたいなら初めからそう書けばいい。>>2みたいなチンポコリンな実装を
21世紀にもなってタラタラ書くなバーカって思う。寝る
0728ID:EEKBitmg ◆HSP4mee/SU 2009/03/11(水) 02:02:53ID:xmrBPpjK
起きた。なんか間違えた。まぁいいや。逐次処理って違うや。もういい
0729名前は開発中のものです。2009/03/11(水) 02:51:56ID:QLymkmBo
>>724
>厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない
えっとまず始めに確認したいんだけど、「厨」ってのはID:EEKBitmgさんのことでいいのかな?(違ってたらゴメン)
で、「そもそものタスクシステム」の話なんてしてないよ。知ってても知らなくてもどうでもいいよ。
でも「そもそもの目的」は>>2を見れば理解できるでしょ。どれもすごく丁寧で分かりやすい記事だし。

以降、改行箇所は適宜勝手に変更する。ごめん。

>>725
>走査回数とメモリ消費をケチるためにプライオリティというものを使ってる。
いや、走査回数とメモリ消費をケチるためにプライオリティを使ってるわけじゃないと思うんだけど・・・。

>以前に出てた話だけど、something(t+Δt)を求めるために
>参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる
これはつまり、タスクAの処理結果を見てタスクBの処理をしないといけない場合、タスクシステムだと
AとBのどちらが先(>>724の図で言えば左)にくるのか分からないので困る、って意味かな?(違うかな?)
でもタスクシステムには、Aを必ずBより先に実行させる方法があるよね。それは分かってるよね?
で、タスクBがタスクAに依存してるのだとしたら、それはタスクBの問題(あるいは性質)であって、
タスクシステムの問題とは全く別の話だよ。

>並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ
なんで突然、並列化の話が出てくるの? タスクシステムの目的は並行動作だよね。
これは>>710のおかしい点でもあるんだけど、>>2では最初から並列動作なんか考えてないんだから、
同期処理とかが組み込まれてないのは当たり前だよね。

>並行動作というかフェイク並行動作してるんだよね
並行とフェイク並行の違いって何なんだろう。なんか並行と並列の違いを理解してない匂いがする。
0730名前は開発中のものです。2009/03/11(水) 02:53:04ID:QLymkmBo
続き。

>>726
>これって何?GCしてるの?どういうタイミングで?
え、ちょっと待って、>>2の話をしてるんだよね? 本当に>>2読んだ??
ID:EEKBitmgさんの言う>>2って、>>2のうちのどれのこと?

>>2を読んだのかどうかって話で思い出した。>>464の、この部分。
>『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は
> 高速化されるという先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素な
> CPUアーキテクチャに依存した公式に過ぎない。定理ではない』
断言してもいいけど、ID:EEKBitmgさんとこの助教授さんは>>2をちゃんと読んでないか、あるいは
頭のネジが足りてないよ。それとも助教授ってこんなもんなのか。知り合いにいないから知らんけど。
ところで課題レポートはちゃんと提出した?


>>727
>タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると
ちっとも分析できてないよ・・・。

>↑みたいな、限りなくどうでもいいことしかしてないということがわかる
全く分かってないよ・・・。
0731名前は開発中のものです。2009/03/11(水) 04:20:03ID:yoM2Y43z
HSPくんは厨房のくせになかなかどうして要点を押さえてるのう
若干正確さに欠ける点に目をつむって処理を端しょってたことに勘付いたか
0732名前は開発中のものです。2009/03/11(水) 07:22:34ID:nhOwJy5w
まぁ、学生さんが理想を追い求めるのは悪いことじゃない。
ただ、現実はそれに立ちはだかると言うことは知っておいた方がいい。
0733名前は開発中のものです。2009/03/11(水) 07:26:19ID:NK6nIuY5
タスクシステム完全に終わったな
0734名前は開発中のものです。2009/03/11(水) 08:32:00ID:74bG+9We
タスクシステムのプレゼン動画
ttp://www.nicovideo.jp/watch/sm2078250
0735名前は開発中のものです。2009/03/11(水) 13:15:27ID:wSuVQdvJ
ていうか細切れに順番に処理してくれるシステムなら何でもいいんじゃね?

適当にクラス作ってリストにして順番に実行
内部では各自カウンタとステート持って勝手にやる、死んだり生きたりはおかしなことにならないようにシステムでええ感じに処理してねー

とまぁ簡単なものならこんなのでいいじゃろ
複雑なのはしらん
0736名前は開発中のものです。2009/03/12(木) 07:22:55ID:7byKm2pB
誰もそんな話してないし
0737名前は開発中のものです。2009/03/12(木) 11:49:54ID:Rx7RnDpA
しろよ
0738ID:EEKBitmg ◆HSP4mee/SU 2009/03/12(木) 23:06:36ID:SEPBaONy
>>729-730
>なんで突然、並列化の話が出てくるの?

それは『ボクのタスクシステムはどっちかっつーと並列!』と言っていた
>>632のおじちゃんに言ってよね。CodeZineなんて初っ端で並列処理と言い切ってる。
あと生協で逆引きゲームプログラミングとかいう本をパラパラーっと立ち読みしたら
『並列動作システム』とか書いてあったし。『並列処理動作』してるんだって。ゲラゲラゲラー
もうさ、ハッタリかましすぎだよね。説明してる内容と、それを一言で表現するときに
どこかから引っ張ってきた用語が全く一致してないんだよね。厨房を騙くらかそうと必死でしょ
今さっき覚えてきた単語をとりあえずあててみました。みたいな。ちょっとね、おかしいとおもう

その点Logician Lord、White Paper、けんもほろろのページは並列なんて一言も言ってない
上に比べたらまだマシな部類なのかなーと思える。タスクシステム解説つっても千差万別だね
0739ID:EEKBitmg ◆HSP4mee/SU 2009/03/12(木) 23:11:52ID:SEPBaONy
ただ、まともっつってもなんか変なんだよね。組み込みシステムか何かから引っ張ってきた
知識を広めた人がいたんだろう、というのは厨の俺でもなんとなくわかる。それがギョーカイ
とかいうよく分かんない謎の秘密結社みたいな世界で伝播する過程でおかしなことになって
ミュータントみたいになっちゃってるんじゃない?この人たちが言ってるTCBとかタスクとか
ちょっと変わってるよね
TCBって、ゲーム機よりショボい組み込み機器でもプログラムカウンタとかスタック
アドレスが入ってる。リエントラントな仕組みを提供すんだよね。だから周期タスクは
periodictask()
{
 while(1){
  dosomething();
  rot_rdq();
 }
}
みたいな感じで書く。タスクは並行動作できるんだ。でも>>2の『タスク』はできない。
サブルーチンの処理を全て完了しないと処理を返せない。タスク同士は完全に
逐次処理なんだ。擬似並列動作ができない
0740ID:EEKBitmg ◆HSP4mee/SU 2009/03/12(木) 23:24:44ID:SEPBaONy
でも>>2の言うタスクってのは、ジョブを時間領域で分割したものだから
タスクの作り方によっては、複数のジョブ同士の並行動作はできるかもね

>タスクシステムの目的は並行動作だよね。

>>2の話?んなこと俺が知るかっつーカンジ
俺は>>632のどっちかっつーと並列とかいう謎のタスクシステムが
並行動作してるのかなーとESPしてみただけだしー。推測でしかないしー

>>2はふたを開けてみればゲームオブジェクトのUpdateメソッドのディスパッチャー
単なるレディキューだからどうとでも使えるわけだしー
このメソッドの分け方次第で並行動作もできるんだろうね。でも
ゲームオブジェクト一個につきタスク一個とか言ってるページもあるから
ちょっと怪しいね。Update()一個じゃあ、>>725で書いた矛盾にぶつかると思う
0741ID:EEKBitmg ◆HSP4mee/SU 2009/03/12(木) 23:39:16ID:SEPBaONy
>385 名前:名前は開発中のものです。 投稿日:2009/02/10(火) 01:05:40 D1ATM4io
>>384
>厳密にやるならワークをそれぞれ2つ持って、フレームごとにフリップだろ。
>面倒だったら一つ一つ更新して、n+1がnを参照してもn+1を参照しても対して問題が無い様にするさ。
>どこまで誤差を容認できるか知らんけど。

なんか臭いなぁ、と思ってたのがここ。CodeZineはこの誤差を容認するほうを選んでるよね。
具体的にはEnemyとMyShotの関係。これタスクリストとかいうものの中でごちゃ混ぜになってるでしょ
当たり判定のときに、自機弾って移動速度速いからさ、敵と当たったり当たらなかったりすると思うよ
ぜったい気持ち悪い現象が起きる理不尽ゲーになると思う
0742ID:EEKBitmg ◆HSP4mee/SU 2009/03/12(木) 23:53:29ID:SEPBaONy
>>741
× 当たり判定のときに、自機弾って移動速度速いからさ
○ 自機弾って移動速度速いからさ

この不快な現象を発生させたくないなら
EnemyとMyShotの実行順序をごちゃ混ぜにしちゃ駄目でしょ
ごちゃ混ぜのままならせめて当たり判定タスクと移動タスクを分けないと
あとさ、必要は無いけど、外部参照されるパラメータは前フレームの状態を
保持したほうがいいよ

例えばロックオンして置き撃ちするときに、targetposition(t)を得るか
targetposition(t+Δt)を得るかがpriorityとかいうものによって変わるって
おかしいでしょ


0743ID:EEKBitmg ◆HSP4mee/SU 2009/03/13(金) 00:03:15ID:w7sHy3uX
>>742
× priorityとかいうものによって変わる
○ タスクリストの前後関係とかpriorityとかいうものによって変わる

>>730
>>これって何?GCしてるの?どういうタイミングで?
>え、ちょっと待って、>>2の話をしてるんだよね? 本当に>>2読んだ??
>ID:EEKBitmgさんの言う>>2って、>>2のうちのどれのこと?

俺と同い年の人が書いたと思しき記事だからボコりたくなかったけど
流れでそうなっちゃったから堰を切ったように書いてるけどさ
CodeZineの記事は他と比べて相当違うんだよね
メモリ割り当てなんて関係ないのにさ、糞みたいなGCかましてるし
STGであんな処理をかますフレームが不定期に存在するって変でしょ
糞みたいな自前のメモリ割り当てやってるからあんなGCが必要に
なるんでしょ。何のための自前アロケータなんだか分からない
厨的には、あんな糞実装は氏んじゃえって思う
0744名前は開発中のものです。2009/03/13(金) 00:16:52ID:kkRWD5W+
タスクシステム擁護派じゃないけどさ・・・

雰囲気つかむだけのサンプルにアホとか言っちゃうのはどうよ?
こういうものは思想だけ頂いて自分の好きなように組んでくれって物じゃないのかね・・・

GCがどうのっていうのも処理落ちしたときにはじめて考えればいい所だし、
ただたんに自分の流儀に合わないから貶すと見えますよ。
0745ID:EEKBitmg ◆HSP4mee/SU 2009/03/13(金) 00:24:04ID:w7sHy3uX
>>729
>>2では最初から並列動作なんか考えてないんだから、
>同期処理とかが組み込まれてないのは当たり前だよね。

性格悪いレスになるけど書いちゃえ!
ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い

>>730
CodeZineの記事のコードってさ、生存中のゲームオブジェクトのアドレスが不定期に変わっちゃうんだよね
あのサンプルってさ、あるゲームオブジェクトのレーダーシステムが特定の目標をロックオンして追跡するとき
どうすんの?

例えばあのサンプルの敵弾ってさ、毎回Playerをタスクリストから探してるんだよね。バカだからさ
priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね

こんな調子で、ロックオンターゲットも、毎フレーム、タスクリストから探し出すわけ?
多目標同時対処能力を保有する機体が入り乱れたら愉快な処理量になりそうだね

こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ?
あんた>>711で『デフラグができること』を取り上げて
これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど
ずっと我慢して黙ってたんだ。でももう書いちゃった。

0746ID:EEKBitmg ◆HSP4mee/SU 2009/03/13(金) 00:30:00ID:w7sHy3uX
>>744
だからずっと黙ってたんじゃん。心情的にはCodeZineの記事は
放置したかったんだけど、擁護派がデフラグデフラグとかいうから
書かざるを得なくなった。HSP使いとしては同じ厨を攻撃するのは遺憾
遺憾の意です。本意じゃありません。ごめんなさい><
0747名前は開発中のものです。2009/03/13(金) 00:40:01ID:idYT2cwA
>746
> だからずっと黙ってたんじゃん。

バカには現実を突きつけてやるしかないんだよ。
0748名前は開発中のものです。2009/03/13(金) 00:45:14ID:9zwO86zu
>>747
突きつけても、見えない or 見ようとしないけどな。大抵。
0749名前は開発中のものです。2009/03/13(金) 01:00:19ID:bP/yrlKM
ID:EEKBitmgはCodeZineの記事の作者と同じにほいがする。
ID:EEKBitmgの方が筋は良さそうだが。

>>744
CodeZineの記事は昔論争になったことがあって擁護派らしき人からの批判も多かった。
批判の方が多かったような。
とにかく駄目なものを技術的な説明を沿えて駄目と言うのは良いでしょう。
■ このスレッドは過去ログ倉庫に格納されています