[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 09:54 / Filesize : 120 KB / Number-of Response : 355
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

タスクシステム総合スレ



1 名前:名前は開発中のものです。 [2007/03/12(月) 23:09:48 ID:8bV5Boxt]
どうぞ

241 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 23:10:29 ID:WXusdEx1]
>>239

タスクリストを複数持つのは面白いアイデアだけど、意味なし。
なぜなら、現在のゲームにおいてボトルネックはまず間違いなく、
描画だから。

しかも描画はハード的処理により、スレッド化などしなくても
並列処理にできる。

242 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 23:15:44 ID:P6iYulT4]
>現状のPC事情を考えると果たして意味がある行為なのかは疑問だがおもしろいTipsじゃなかろうか?
マルチコアといっても、大抵2CPUしか積まれていないので、
どんなに良くなっても2倍。ほとんど無意味ではあるかな。

コンシューマ機なら話は大きく変わる。
タスク処理を239のようにするのはデフォになる。
ただ、違うスレッドに居るタスク同士が情報をやり取りするとクラッシュするので、
タスクの基礎部分でだけなんとかするのはムリ。


>なぜなら、現在のゲームにおいてボトルネックはまず間違いなく、
>描画だから。
「現在の」じゃなくて、「一昔前の」ならそうかな。
今は物理計算があるから、そうともいえない。

243 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 00:46:11 ID:D3wQozch]
>>239はこれだね
ttp://www.watch.impress.co.jp/game/docs/20070131/3dlp.htm


244 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 12:56:56 ID:kPTKND6z]
>>241涙目wwwwww

245 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 13:28:32 ID:ofnNc5u7]
タスクシステム信奉者の致命的な欠点は古い物にこだわりすぎて、
時代をしっかり把握できないことだな
>>241が代表例

246 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 14:37:15 ID:sF8jML+T]
>>241がタスクシステム信奉者なんてどういう見解だよw

247 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 23:02:50 ID:59B/D9d+]
>>243を見てると、タスクシステムがどうだとかいう議論がむなしくなるなw

248 名前:名前は開発中のものです。 [2007/04/24(火) 02:12:23 ID:rP75YEIH]
>>247
タスクシステムを気軽に楽しめばいいんだよ。
世の中には、いろいろなプログラムを作っている人がいて役立つ人もいる。

手のとどく範囲のプログラムにおいて、タスクシステム(タスクパターン)を使ったら設計が簡単でパフォーマンスも
あがった、なんてレスがあったらいいんじゃないかな。

おれが思ったのは、GUIのキャラクタの移動や、あとはパケットの取得/処理なんかのネットワークプログラミングに
気軽に応用できそうなきがする。いままでThreadたちあげてwhile(true)でまわしていた処理をすべて見直してるところだ。
だれかそういうTipsを集めたWikiつくってくれ。


249 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 02:49:26 ID:icr09Pcb]
だからそれはマイクロスレッドとかファイバーだろ。



250 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 03:10:26 ID:pD/5kZWi]
ゲーム制作における所謂「タスクシステム」がきちんと定義されてないから終わらんな。

曖昧なまま広がって時が流れすぎた。
みんな自分のタスクシステムこそ正義と信じて、終わり無き議論が続いていく。

まとめられるカリスマwも現れないだろうしな。
出来る奴はこんな瑣事に関わろうともしない。

251 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 03:59:44 ID:Tdee1eAV]
どうせ2chだし、仕事みたいに方向性が別にはっきりとあるわけでもないからな。

252 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 04:08:33 ID:nLYBhYy0]
まーた定義厨か。

実装はさておき「サブルーチンがぶらさがってるリスト」では
彼の気が済まないんだろうか。

253 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 06:19:19 ID:0Y4cOVot]
今日からこのスレでは
タスクシステム=サブルーチンがぶらさがってるリスト
になりました

254 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 06:21:41 ID:nLYBhYy0]
オーケー、これで議論のループはめでたく終了な。

255 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 08:20:55 ID:rP75YEIH]
このスレ自体がタスクシステムで、最近のレスしか読めない人は定義から入ろうとするし
いろんなタスク(ファイバー)が走ってると思えばいいじゃない。
でも、ここからはタスクシステム書いてみるなりして実装方向の
話にうつらないと定義ファイバーしか走らないスレになるな。


256 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 08:30:38 ID:Cn47ifyt]
>実装方向の話にうつらないと

また実装乞食か。好きなように作れよ。
サブルーチンがぶらさがってるリストなんだろ?


257 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 09:17:07 ID:wt/UedOB]
なんで早朝からカリカリしてんの?

258 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 11:33:46 ID:BSew7CHC]
所謂タスクシステムと、所謂ファイバーは全然違うモノなのに、
なんでここでは同じモノになっちゃってるの?

259 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 11:57:00 ID:aJzi4MOG]
タスクシステムの公的な定義なんて存在しないし、
人それぞれにバラバラな解釈をしているんだから、まとまるはずがない。
定義できると思いこんでいるのは、自分の勝手な解釈を他人にもさせようとする、
脳味噌が足りない馬鹿だけ。



260 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 12:37:27 ID:pYdxlQj1]
>>259
定義しなくても議論はできるさ。
例をあげて話し合えばいい。
問題は90レスほどするとせっかく提示した事例を無視して定義について云々いう奴が現れることだ。

261 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 18:18:54 ID:DJmpRTH+]
ファイバーを「サブルーチンがぶらさがってるリスト」とか表現したら笑われるよ。

262 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:00:32 ID:gy8tG6E1]
固定された時間分のCPUリソースを各タスクに均一に割り当てるパターンを研究してくれ。

263 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:02:48 ID:nLYBhYy0]
ファイバの肝はユーザモードでのコンテキストスイッチだもんな。
つーか>>4-5

264 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:08:20 ID:nLYBhYy0]
>>262
そこまでいくとRTOSを移植したほうが早いだろうな。
しかしゲームにおいてCPU時間リソースを均一に割り振るメリットは殆ど無いと思うのだが。
何か思いつく?

265 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:32:32 ID:gy8tG6E1]
リアルタイム戦略SLGとか?

266 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 21:55:18 ID:sh8YE+KJ]
>>259
>タスクシステムの公的な定義なんて存在しないし
 
フェードアウト組が大好きなタスクシステムについてはそのとおりだな。
「俺の自慢のタスクシステム」の素晴らしさについてグダグダ語る前に
せめてテメェの脳内定義上のタスクシステムについて説明してから
発言しろ、というごく基本的な話だな。


>定義できると思いこんでいるのは、自分の勝手な解釈を他人にもさせようとする、
>脳味噌が足りない馬鹿だけ。

上に同じ。(公的な)定義ができると思い込んでるのは狂信者であり
お前の言う通りの連中だ。

267 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 22:48:36 ID:HwcF2GDq]
定義できないとかいっているやつは
他人と協調も議論もできない自分勝手なやつだけだろ

268 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:01:09 ID:wt/UedOB]
というか通じるよね?定義とかしなくてもさ。
実装してクレとか言ってるわけじゃないんだし、人によって全く違う動作をするようなものじゃないんだから。

269 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:31:17 ID:Meuc1va2]
面接官「特技はタスクシステムとありますが?」
学生 「はい。タスクシステムです。」
面接官「タスクシステムとは何のことですか?」
学生 「サブルーチンがぶらさがってるリストです。」
面接官「え、サブルーチンがぶらさがってるリスト?」
学生 「はい。サブルーチンがぶらさがってるリストです。」
面接官「…で、そのタスクシステムは当社において働くうえで何のメリットがあるとお考えですか?」
学生 「はい。オブジェクト指向とは全く違う自由度と再利用性の高い汎用的な管理ができるようになります。」
面接官「ほう。もうすこし詳しく聞かせてください。」
学生 「詳しくはCマガジン2006年1月号を参照ください。」
面接官「いえ、あなたの言葉でお願いします。サブルーチンがぶらさがってるリストは何故に
      オブジェクト指向とは全く違う自由度と再利用性の高い汎用的な管理ができるのですか?」
学生 「やねうらお先生のサイトも参照ください。URLは・・・」
面接官「いえ、あなたの見解を伺ってるのですが。」
学生 「あれあれ?怒らせていいんですか?使いまs」
面接官「帰れよ。」



270 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:35:21 ID:nLYBhYy0]
自分で自分にレスして「上に同じ」もねぇよなぁ

271 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:40:15 ID:sh8YE+KJ]
自作自演認定されちゃったよ

272 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:44:07 ID:Meuc1va2]
>>270
あなたを、タスクシステム普及委員長です

273 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 00:09:37 ID:d3y1YdqK]
定義できるのは、ここではタスクシステムをこういう概念で扱いますとローカルで宣言する場合だけ。
グローバルに定義することなど不可能だし、そういうことをしようとする奴は自分の意見を一方的に押し付ける身勝手なやつだけ。
その結果、結局は宗教論争のようになる。

274 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 00:56:02 ID:qAG7MKWl]
毎回列に並びなおして、工程ごとに仕事を聞きに来る従業員システムと言えばいいんじゃないの?

275 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 06:27:40 ID:RAoN/rs2]
このスレで通じればいいからローカル定義で十分

276 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 08:10:39 ID:Rf7pmltu]
>>269
そのレスを建設的な意見ととらえてみる。
たしかに「詳しく議論を」面接官にいわれて、そこからなんにもいいレスは現れてないな。このスレの現状は。

くだらん質問でもいいから、具体的にだれかアプリをタスクシステムで作ってつまづいたところとか
質問すればいいんじゃない?

たとえば2chブラウザにタスクシステムを取り入れてつくったらどうなる?具体的にはHTTPで
スレをもってくる処理をタスクにしてみてはどう?

277 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 12:18:45 ID:XXwI0rZa]
タスクシステムなんてのはあくまで実装の仕方なだけで、
それが良い悪いというのは言語同士の争いと同じく不毛
結局のところ言語と一緒で、自分の使い慣れたものを使えばいいだけ
ただ>>276の提示したような明らかに用途が違うものに適用するのは馬鹿げてる

278 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 12:40:36 ID:Yl4vGAsK]
実装の共通点といえば処理をタスクというものにまとめて扱うところぐらいだろ
よーするにオブジェクト指向に近い話だと思うんだけど

279 名前:名前は開発中のものです。 [2007/04/25(水) 16:16:35 ID:tVRJOqln]
> たとえば2chブラウザにタスクシステムを取り入れてつくったらどうなる?具体的にはHTTPで
> スレをもってくる処理をタスクにしてみてはどう?
それこそ、マルチスレッドの出番だろw




280 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 00:53:16 ID:zB6RGP0j]
>>279
タスクとやらでやってみたけど、劇的に早くなるな。すぐに作れるしソースもきれいにできる。
いろいろ改良してみるよ。

まあ、固定概念にひたってるやつは頭が固いってことだよ。

281 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 01:58:51 ID:ScANyKa7]
サビキ仕掛け

282 名前:名前は開発中のものです。 [2007/04/26(木) 15:18:59 ID:LD+Ad5uI]
>>280
釣れますか?

283 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 17:45:46 ID:EAeyMYqP]
頭がやわらかすぎるのも考え物だな

284 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 17:54:31 ID:ltksUv3A]
脳死者の脳は
溶けちゃってるっていうしなあ

285 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 19:42:12 ID:4pZ8geJG]
お前らってタスクリストってソート使う?

286 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 19:53:28 ID:hISFYhVD]
OT使ってるからソートはしない。
けど最近のPCは速いからソートしても良いかもなー

287 名前:名前は開発中のものです。 [2007/04/26(木) 23:47:26 ID:LD+Ad5uI]
OTってOrderingTable?これも業界用語だよな・・・

288 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 13:18:26 ID:xqg9LfBt]
>>280
その劇的に早いきれいなソースを出さないのは何故?
いや、まぁネタにマジレスするのもどうかとは思ったんだけど

289 名前:名前は開発中のものです。 [2007/04/28(土) 15:51:51 ID:ABQqrv+P]
>>288
教えたくないから。
これって起業レベルのノウハウかもしれないから。社内で提案するかもしれないものをここにはさらせないでしょ。



290 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 16:05:29 ID:B/ltLmOS]
289 < 俺・・・このタスクが完成したら起業するんだ・・・

291 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 16:50:13 ID:QLBq9OY8]
タスクシステムで起業とか、お前は小学生かと。

292 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 18:47:35 ID:/H8LY+k/]
技術が儲けになると思う御年頃なんだろ
インド、中国、韓国あたりに行くのなら、技術が儲けになるという話も間違いではないけど・・・

293 名前:名前は開発中のものです。 [2007/04/28(土) 19:16:43 ID:00qBiuMZ]
釣られんのよw

294 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 23:22:08 ID:XL3V8yE3]
ソートはしないな。最初からリストの最後もしくは最初に追加するようにするから。
タスク作成時に必要なリストを作る。

まあ、動的に変化するものは専用の管理クラスかなんか作るだろうな。
プライオリティとかは標準的な制御に入れない。美しくないし。

295 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 23:51:37 ID:F7O57cEz]
おまいらなんの目的でソートしてる?

コリジョン判定の回数を減らすためなら、おいらは2分木でデータを追加していくから実質ソート済み。

296 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:14:38 ID:KdpdkeKK]
他のタスク(郡)にアクセス(干渉(値見たり書き換えたり))するとき

297 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:21:54 ID:HaLkae7w]
いきなり話かわるけど線形リスト(単方向リスト、チェーン・・・・呼び方はいろいろあるけど)だと挿入や削除は早いけど探索は遅い
これが配列(ベクター、固定領域)だとまったく逆の性質になる

実はゲームに不向きなんじゃないか?タスクシステムって

298 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:30:25 ID:yZTB6Hgr]
自分のプログラムに向いたコンテナを使えばいいじゃん。
タスクがリストだってイメージはメモリの動的管理をケチるような
(ヒープじゃなくてワークとか言ってるような)時代の名残じゃないかと思う。

299 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:30:47 ID:KdpdkeKK]
そんな事言ったらコンピュータ自体がゲーム作るのに不利になるって結論に達すると思う。
vectorだと揮発性だからポインタ辺りが面倒くさいし、固定領域だとスタックオーバーフローとか何とかが起こるしね。



300 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:37:24 ID:oN9CX2Ee]
固定領域でスタックオーバーフローって意味不明。
馬鹿は下手に用語を使うな。

301 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:39:24 ID:KdpdkeKK]
固定領域じゃスタックオーバーフローは起こらんな。
ちょっとボケてた。

302 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 02:20:56 ID:ybvN8RFV]
>>297
リストの配列にすればいいさ
リストから一つのオブジェクトだけを探索したいときは遅いままだけど
そういうときはあらかじめハンドルなりポインタなり握っておけばいい

303 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 07:36:23 ID:HDYBA+tg]
Javaの場合だけどリストでもなくBlockingQueue<Task>にいれてる。優先度別にqueueも複数ある
queue内のすべてのタスクのupdateと必要な描画処理が20ms以内ならまずまずかな

304 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 14:50:39 ID:LzYPF20u]
>>289みたいなのがいる限りタスクシステム(笑)も安泰だな

305 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 14:52:33 ID:nUOoY/JG]
イテレートの速い順序付けツリーってあるの?

306 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 15:34:08 ID:tvNJg+l3]
>>305
順序付けツリーなら C++ の set や map がだいたいそんな感じだろう。
で、イテレートの遅いコンテナなんてあるの?

307 名前:名前は開発中のものです。 mailto:sage [2007/05/01(火) 13:07:57 ID:Nbo+fhA7]
deque?
わかんねw

308 名前:名前は開発中のものです。 mailto:sage [2007/05/01(火) 22:39:08 ID:2cazExNO]
アドレスがばらけるコンテナはキャッシュミスが起きやすい。
ハッシュのコンテナも構築時間を犠牲にしないものはスカスカのテーブルをそのまま辿るしかないな。

309 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 14:23:53 ID:pqs4xK60]
皆さんのやってるプラットホームはやはりPC?
コンシューマなひと、いなさそうだが・・・



310 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 15:27:45 ID:AAlSvZp8]
それを何故このスレで聞くのか

311 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 17:38:15 ID:m1OoG9Xt]
一応居るけど

312 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 18:08:30 ID:e9oT09wF]
メガドラやってるよw
あのスレは見てない

313 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 19:38:53 ID:X2Bn3rtL]
コンシューマやってるけど何が聞きたいの
ハードに依存してない部分だしPCとあんまり変わらんよ?

314 名前:名前は開発中のものです。 [2007/09/02(日) 04:39:14 ID:OA6cGu0G]
そうなん?
てっきり、いまだにタスクシステム使ってるのかと

315 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 04:49:20 ID:4YT1t12/]
君の思うタスクシステムの具体的な実装が
どういうもんか言ってもらわんと答えようがないなあ
その通りかもしれないしそうじゃないかもしれないよ

316 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 14:53:28 ID:O3956k1d]
なんかGDGDだなこのスレw
でも、嫌いじゃないので、おいらもGDGDカキコ

タスクの良いところってのはその柔軟性だよな。
技術的にはぜんぜんたいした事をしてるわけじゃない。
とくに、このスレではタスク=リストになってるが、別にリストなんて「高度」な
事をしなくても、ただの配列でもまったく問題なく実現できる。
(無論効率は若干落ちるが、即時にデータ起動の並列もどきルーチンが
作れるのでいろんな環境で便利)

唯一凄いと思えるのは、歴史的な経緯かな。
プログラム主体の8bit時代において、
プログラムでデータを管理するのではなく、データで、プログラムを管理(プログラムを選ぶ)
すると言う、データ主体の発送が凄かった。


317 名前:名前は開発中のものです。 [2007/09/02(日) 16:25:59 ID:OA6cGu0G]
リストが高度とか、時代錯誤もは(ry


318 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 20:53:53 ID:O3956k1d]
>>316
おいおいw
わざわざ「」付で言ってるんだから
比喩に決まってるだろ

リストが「高度」な技術と言える程、
タスクの実装に技術はいらないって意味だ
ゆとりじゃあるまいし、勘弁しておくれw


319 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 22:16:13 ID:UfEehfKc]
茶でも飲んで落ち着けw



320 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:01:13 ID:O3956k1d]
うむ、そうするか

∧_∧
( ´・ω・) ズズー
( つ旦O
と_)_)


321 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:14:50 ID:O3956k1d]
せっかくなのでリストを使わないタスクをネタ代わりに投下
てきとーに作っただけなので、コンパイルすらしてないけどなw
#define MAX_TASK 256;
struct tcb{
void (*proc)(tcb*); //処理関数
int work[10]; //ワーク
};
tcb* make((void (*proc)(tcb*)){
//生成
for(int i=0;i<MAX_TASK;i++){
if(TCB[i].proc == null){
TCB[i].proc = proc;
return &TCB[i];
}
}
return null;
}
void del(tcb* deltcb ){
deltcb->proc = null;
}
void exec(){
//実行
for(int i=0;i<MAX_TASK;i++){
if(TCB[i].proc != null)TCB[i].proc(&TCB[i]);
}
}
tcb TCB[MAX_TASK];


322 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:19:25 ID:O3956k1d]
void main()
{
//初期化
for(int i=0;i<MAX_TASK;i++)TCB[i].proc = null;
//実行
exec()
}


まあ、リストに対するアンチテーゼと、
こんなに短くてもそこそこ機能するってのが言いたかっただけなんだけどね
なんにせよ、タスク(というか、並列動作もどき)ってのは、そんなご大層なものじゃないんで、
もう少し気軽に使えてもいいと思うな。

323 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:25:34 ID:4YT1t12/]
std::vectorとclass Hoge { virtual void Update() = 0; };なら
そのソースの1/3くらいで終わる

324 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:34:48 ID:O3956k1d]
>>322
そうか、よかったな。

ただ、このソースは4KのRAMでも動くんだ。
あと、Cを始めて2日の初心者でも理解できるぞ。
ついでに言えば、C++のない環境でも動く。
別に煽ってるわけじゃなくて、316で書いたように
柔軟性が高いということが言いたいだけなんだ。

シンプルなロジックであるが故の柔軟性
かつ、高い並列性がタスクの凄いとこなんだよな

325 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:44:30 ID:O3956k1d]
>ただ、このソースは4KのRAMでも動くんだ。

おっと、タスク数を256にしていたか、4Kじゃ動かんなw
まあ、意図はわかると思うんで、適当に読み替えてくだちぃ

326 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 00:13:38 ID:OKOrcl0B]
うーん、まあ好きなように作ってればいいと思うよ

327 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 00:50:28 ID:eAiA8cQA]
>>324
数メガの RAM と C++ コンパイラのある環境で得意げに >>321 みたいな
コードを書かないでいてくれるなら文句は無い。

328 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 01:11:08 ID:tpNXAe5A]
>326
いや、無論自分自身は好きに作ってる。
ただ、タスク=LIST管理とかなってきてて、
デザパタとか絡ませる風潮がなんとなくいやなんだ。
もちろん、そういった事を否定するわけじゃなくて、
もっとシンプルなものって事が言いたいだけだよ。


> 数メガの RAM と C++ コンパイラのある環境で得意げに >>321 みたいな
> コードを書かないでいてくれるなら文句は無い。

いや、得意気もなにも普通に組むよ。
無論システムとしては組まないけどね。

というか、逆に聞きたいんだけど、並列ではないシステムで(要するにシングル)で組んでて、
一時的に、並列的な挙動が欲しい時って、どうやって組んでるの?
まさか、システムに組み込ませるわけじゃないよね?

自分はそういったことが頻繁にあるんで、
そんな中での小技テクとして、上記のようなコードをチョコチョコつかってる。
逆に言うと、タスクなんてその程度のもの。
無論、システム化してべったりって好きだけど、その環境だけで組めるわけじゃないからね。


329 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 01:35:46 ID:eAiA8cQA]
>>328 >>323



330 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 01:47:58 ID:OKOrcl0B]
>というか、逆に聞きたいんだけど、並列ではないシステムで(要するにシングル)で組んでて、
>一時的に、並列的な挙動が欲しい時って、どうやって組んでるの?
まさしく>>323

331 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:06:52 ID:tpNXAe5A]
>>329
なるほど、STLに行くのか。
て事は基本的な方向性(末端でタスク生成)は変わらないんだよね?

ちなみに自分がかかわったプロジェクトでは、STLはメモリの消費量と、
ガベコレを意識できないプログラマがいて、使えなかった。
厳密には使えたんだが、STLの類は、みんな使うとなったら、とことん使うので、
あっという間に使用量が膨れ上がって、パンクしたw。
(搭載メモリは16Mな)
別の件でSTLはおろか、Cの標準ライブラリすらない環境もあったので、
頼らない組み方が基準にはなった。
確かに、つかえりゃ楽なんだけど、
Window以外は、鬼門なことがままあるからなあ>STL

あと、新人に理解させる期間が必要という現実的な問題もあるしなw

ま、タスクの話からは若干それたが、
329の環境が、STLが使えるような環境を基準に出来れば、それはいいことだと思うよ。
こっちは中々難しいんで、小技テクでごまかして進むしかないけどw

332 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:37:16 ID:eAiA8cQA]
>>331
関数ポインタと固定ワーク領域(+無理やりキャスト)が仮想関数に
置き換わっただけで、基本的な考え方は同じ。

あと、新人に理解させるって点で言っても、関数ポインタや無理やりな
キャストよりも仮想関数のほうが自然で理解しやすいはず。特にアセンブラを
やらない今の時代では。

生配列と vector の違いについては今の話にはほとんど関係ないけど、
「それ何年前の話?」ってぐらいの時代遅れ感がする。
vector 出しただけで STL 全体の話になってたり、「ガベコレ」とか言ってる
あたりで理解も怪しいし。

333 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:54:20 ID:OKOrcl0B]
>ちなみに自分がかかわったプロジェクトでは、STLはメモリの消費量と、
>(ry
もうこの辺って用途によるんじゃないかなぁ
360とかPS3みたいにメモリが贅沢な環境でも切り詰めりしなきゃならない場面もあるから
>>321みたいな実装になることもあるよ

勘違いして欲しくないのは、本来やりたいことってのが
大量の「関数と実行コンテキストのペア」を如何に管理するかって話なんだから
>>321の例にしても>>323の例にしても、所詮はその実現方法の1つに過ぎないことかな

逆に質問してみるけど
9割が128バイトのサイズのタスクと残りが1024バイトのタスクが混在するような状況下で
あなたはどうやって管理するんでしょうか

334 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:58:58 ID:sckJXuMq]
まあvectorだと、「削除や挿入などの操作」と「タスクへのポインタの保持」が背反するんだけどな。
321みたいな配列系は、リスト用のポインタ変数すら削りたいほどメモリが逼迫してて、
順番の制御が要らないのならいいんじゃね?

335 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 03:27:47 ID:Ic41WPtX]
>>332

> 関数ポインタと固定ワーク領域(+無理やりキャスト)が仮想関数に
> 置き換わっただけで、基本的な考え方は同じ。

なるほど、ここは了解っす。

> vector 出しただけで STL 全体の話になってたり、「ガベコレ」とか言ってる

いやいやw、実際使用する段になったら、vectorだけ使用してOKって話にはならんでしょ。
これがだめ、あれがOKって細かく指定するならよいんだけど、そこまでして
STL使うプロジェクトには参加したことないなぁ。それに制限するならSTLの意義が薄れてくるし。
(確かに、vector使えるだけでもかなり変わるとは思うけどね)

ガベコレについては、話が飛びすぎの感があったんで細かく触れなかったが、
メモリの断片化による、ガベコレの処理落ち、あと、メモリ確保エラーのコトな。
現在のSTLでこれらが一切起こらないことが保証されてるならいいけど、
そうでないなら、対処を知らない人のために、何らかの対策や方針が必要になる。
件のプロジェクトではそれがなくてヤバいことになった。


> あと、新人に理解させるって点で言っても、関数ポインタや無理やりな
> キャストよりも仮想関数のほうが自然で理解しやすいはず。

あー、ここは同意。
無理やりキャストよりは、言語使用に沿った概念のほうがいいからね。

336 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 03:46:43 ID:Ic41WPtX]
>>333
基本的には1024byteのタスクを先に生成して(起動するまでSLEEP)から、128byteタスクの生成かな。
途中でどうしても、フルに使わなきゃならない場合は、グループでの生成と削除を行う。
この例だと、8タスクを1グループとして、生成と削除を行う。
大体、こんなかんじっす。

337 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 03:48:53 ID:eAiA8cQA]
>>335
ほんと、胡散臭いな。 vector は許可が無いと使えないのが当たり前だと
思ってそうだし。

標準ライブラリに使用制限を付けるほうが異常でしょ?制限を付けるには
理由が要る。コンテナの動的メモリ確保に問題があって禁止するなら、
アルゴリズム系ライブラリまで "STL" とまとめて禁止することは無い。

C++ の言語仕様にも標準ライブラリにもガベコレは無い。 Boehm GC でも
使ってるの?

メモリの断片化がどうのこうの云うなら malloc も new も同じことなんだけど、
それらも使わないことにしてるの?
あー。 new が禁止になってるなら仮想関数を使わないのかな?

338 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 04:13:34 ID:Ic41WPtX]
>>337
いや、なにをうさんくさがってるのか知らないけど、
自分の考えや方針と違う人がいるのがそんなに気に入らないのかな?

> ほんと、胡散臭いな。 vector は許可が無いと使えないのが当たり前だと
> 思ってそうだし。

そんなことは思ってもいないが、STL使用時はメインの人に確認はするよ。
まあ別に、どうでもいいけどね。

> メモリの断片化がどうのこうの云うなら malloc も new も同じことなんだけど、

別にmallocは禁止にしてないけど、ほとんど使わないね。
仮想関数は、c++が使える環境かどうかとメモリ量によるね


339 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 05:14:29 ID:eAiA8cQA]
>>338
気に入らないのは、不確かな理由で複雑なコードを書いてしまうこと。

vector を使えない理由をいろいろと説明しようとしてくれていたけど、その理由の
真偽が胡散臭いってことね。

ただ、これ以上追究する気もなくなった。



340 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 09:21:14 ID:y2Xn2ykc]
>>338
提示したソースが洗練されてるとは言わんが、
ほぼすべてのC環境で動くコードが、
最近の環境に適したコードではないからといって、
胡散臭がられるとは思わなかったw
短くて、美しいソースが正義とか思ってそうだね。

341 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 09:50:46 ID:OKOrcl0B]
>>336
君のやり方って1フレーム中に
毎フレーム256個のタスクがアクティブかどうかチェックするための
オーバーヘッドが発生するんだけど(これ自体がそもそも重大な問題なのに)
そのメモリの割り当て方はそれを上長させますよ

342 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 10:28:10 ID:2Imr3kJv]
>>340
id:O3956k1d = id:y2Xn2ykc なのはいいとして(レス番が一個ずつずれてるぞ)
胡散臭いと言われてるのはSTLとガベコレを混同してるid:tpNXAe5A = id:Ic41WPtXd の存在自体
であって、君のことじゃないだろう?

343 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 11:23:55 ID:VocmouaK]
つか、なんで>>331でガベコレの話がいきなり出てきたわけ?

344 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 11:40:25 ID:ckJtc0Qf]
>>331
>(搭載メモリは16Mな)
ドリーmあqswでfrgtyふじk

胡散臭がってる人とかPCの人には分らんかもしれんがコンシューマだと
プロジェクトによってはSTLはおろかC++も使えないことがあるよ。
C++許可でもnew禁止、とかさ。
古い人(ちょっと偉い人)がプロジェクトに混じるとC主体になったりするし。

>>340
正義がまかり通る職種ではないし、主義主張を煽るような発言は荒れるぜー。
プログラマは性格悪いからなw

345 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 11:44:32 ID:ckJtc0Qf]
>>343
C++かSTLにガベコレなんて実装されてたっけ?
記憶にないんだけど。

346 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 12:25:32 ID:rM0ce6hj]
>>344
ゲームじゃないけど
RAM128バイトでcコンパイラも無いターゲットで仕事したことあるぞ

347 名前:名前は開発中のものです。 [2007/09/03(月) 13:20:45 ID:BR9raoz2]
  /'           !   ━━┓┃┃
-‐'―ニ二二二二ニ>ヽ、    ┃   ━━━━━━━━
ァ   /,,ィ=-;;,,, , ,,_ ト-、 )    ┃               ┃┃┃
'   Y  ー==j 〈,,二,゙ !  )    。                  ┛
ゝ.  {、  - ,. ヾ "^ }  } ゚ 。
   )  ,. ‘-,,'   ≦ 三  
ゞ, ∧ヾ  ゝ'゚       ≦ 三 ゚。 ゚
'=-/ ヽ゚ 。≧         三 ==-
/ |ヽ  \-ァ,          ≧=- 。
  ! \  イレ,、         >三  。゚ ・ ゚
  |   >≦`Vヾ        ヾ ≧
  〉 ,く 。゚ /。・イハ 、、     `ミ 。 ゚ 。 ・

348 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 13:31:16 ID:ckJtc0Qf]
128バイト?キーチェーンとかでももう少しありそうなんだが。

つか、8bit以下のCPUならコンパイラよりもアセンブラだろ。
小さいならバイナリを打ち込んだりとか。

349 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 22:41:28 ID:l9Qlmw/p]
ワークがちょびっとしかなくても
ROMが十分あればどうとでもなる



350 名前:名前は開発中のものです。 mailto:sage [2007/09/04(火) 02:25:05 ID:+Mg349f+]
もちろんアセンブラ
他に選択肢は無いし
ちなみに、CypressのCY7C63101か何かだった

351 名前:名前は開発中のものです。 mailto:sage [2007/09/07(金) 22:50:02 ID:CXdTTUEg]
時代錯誤のロートルはもう死んでくれ。
お前の糞テクニックなんて今はもう害悪にしかならんよ。

352 名前:名前は開発中のものです。 mailto:sage [2007/09/10(月) 00:23:29 ID:QZRbzkCO]
\|/
/⌒ヽ   / ̄ ̄ ̄ ̄ ̄ ̄
| ゜Θ゜)< そうでもないよ。
| ∵ つ \______
| ∵ .|
\_/

353 名前:名前は開発中のものです。 mailto:sage [2007/09/12(水) 13:27:57 ID:ZYdwKK9S]
>>346
それってPICだろ・・・・

354 名前:名前は開発中のものです。 mailto:sage [2007/09/12(水) 15:51:28 ID:+wMsl3iC]
>>353
Cypressの8bitマイコンです






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<120KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef