07/09/03 02:58:58 sckJXuMq
まあvectorだと、「削除や挿入などの操作」と「タスクへのポインタの保持」が背反するんだけどな。
321みたいな配列系は、リスト用のポインタ変数すら削りたいほどメモリが逼迫してて、
順番の制御が要らないのならいいんじゃね?
335:名前は開発中のものです。
07/09/03 03:27:47 Ic41WPtX
>>332
> 関数ポインタと固定ワーク領域(+無理やりキャスト)が仮想関数に
> 置き換わっただけで、基本的な考え方は同じ。
なるほど、ここは了解っす。
> vector 出しただけで STL 全体の話になってたり、「ガベコレ」とか言ってる
いやいやw、実際使用する段になったら、vectorだけ使用してOKって話にはならんでしょ。
これがだめ、あれがOKって細かく指定するならよいんだけど、そこまでして
STL使うプロジェクトには参加したことないなぁ。それに制限するならSTLの意義が薄れてくるし。
(確かに、vector使えるだけでもかなり変わるとは思うけどね)
ガベコレについては、話が飛びすぎの感があったんで細かく触れなかったが、
メモリの断片化による、ガベコレの処理落ち、あと、メモリ確保エラーのコトな。
現在のSTLでこれらが一切起こらないことが保証されてるならいいけど、
そうでないなら、対処を知らない人のために、何らかの対策や方針が必要になる。
件のプロジェクトではそれがなくてヤバいことになった。
> あと、新人に理解させるって点で言っても、関数ポインタや無理やりな
> キャストよりも仮想関数のほうが自然で理解しやすいはず。
あー、ここは同意。
無理やりキャストよりは、言語使用に沿った概念のほうがいいからね。
336:名前は開発中のものです。
07/09/03 03:46:43 Ic41WPtX
>>333
基本的には1024byteのタスクを先に生成して(起動するまでSLEEP)から、128byteタスクの生成かな。
途中でどうしても、フルに使わなきゃならない場合は、グループでの生成と削除を行う。
この例だと、8タスクを1グループとして、生成と削除を行う。
大体、こんなかんじっす。
337:名前は開発中のものです。
07/09/03 03:48:53 eAiA8cQA
>>335
ほんと、胡散臭いな。 vector は許可が無いと使えないのが当たり前だと
思ってそうだし。
標準ライブラリに使用制限を付けるほうが異常でしょ?制限を付けるには
理由が要る。コンテナの動的メモリ確保に問題があって禁止するなら、
アルゴリズム系ライブラリまで "STL" とまとめて禁止することは無い。
C++ の言語仕様にも標準ライブラリにもガベコレは無い。 Boehm GC でも
使ってるの?
メモリの断片化がどうのこうの云うなら malloc も new も同じことなんだけど、
それらも使わないことにしてるの?
あー。 new が禁止になってるなら仮想関数を使わないのかな?
338:名前は開発中のものです。
07/09/03 04:13:34 Ic41WPtX
>>337
いや、なにをうさんくさがってるのか知らないけど、
自分の考えや方針と違う人がいるのがそんなに気に入らないのかな?
> ほんと、胡散臭いな。 vector は許可が無いと使えないのが当たり前だと
> 思ってそうだし。
そんなことは思ってもいないが、STL使用時はメインの人に確認はするよ。
まあ別に、どうでもいいけどね。
> メモリの断片化がどうのこうの云うなら malloc も new も同じことなんだけど、
別にmallocは禁止にしてないけど、ほとんど使わないね。
仮想関数は、c++が使える環境かどうかとメモリ量によるね
339:名前は開発中のものです。
07/09/03 05:14:29 eAiA8cQA
>>338
気に入らないのは、不確かな理由で複雑なコードを書いてしまうこと。
vector を使えない理由をいろいろと説明しようとしてくれていたけど、その理由の
真偽が胡散臭いってことね。
ただ、これ以上追究する気もなくなった。
340:名前は開発中のものです。
07/09/03 09:21:14 y2Xn2ykc
>>338
提示したソースが洗練されてるとは言わんが、
ほぼすべてのC環境で動くコードが、
最近の環境に適したコードではないからといって、
胡散臭がられるとは思わなかったw
短くて、美しいソースが正義とか思ってそうだね。
341:名前は開発中のものです。
07/09/03 09:50:46 OKOrcl0B
>>336
君のやり方って1フレーム中に
毎フレーム256個のタスクがアクティブかどうかチェックするための
オーバーヘッドが発生するんだけど(これ自体がそもそも重大な問題なのに)
そのメモリの割り当て方はそれを上長させますよ
342:名前は開発中のものです。
07/09/03 10:28:10 2Imr3kJv
>>340
id:O3956k1d = id:y2Xn2ykc なのはいいとして(レス番が一個ずつずれてるぞ)
胡散臭いと言われてるのはSTLとガベコレを混同してるid:tpNXAe5A = id:Ic41WPtXd の存在自体
であって、君のことじゃないだろう?
343:名前は開発中のものです。
07/09/03 11:23:55 VocmouaK
つか、なんで>>331でガベコレの話がいきなり出てきたわけ?
344:名前は開発中のものです。
07/09/03 11:40:25 ckJtc0Qf
>>331
>(搭載メモリは16Mな)
ドリーmあqswでfrgtyふじk
胡散臭がってる人とかPCの人には分らんかもしれんがコンシューマだと
プロジェクトによってはSTLはおろかC++も使えないことがあるよ。
C++許可でもnew禁止、とかさ。
古い人(ちょっと偉い人)がプロジェクトに混じるとC主体になったりするし。
>>340
正義がまかり通る職種ではないし、主義主張を煽るような発言は荒れるぜー。
プログラマは性格悪いからなw
345:名前は開発中のものです。
07/09/03 11:44:32 ckJtc0Qf
>>343
C++かSTLにガベコレなんて実装されてたっけ?
記憶にないんだけど。
346:名前は開発中のものです。
07/09/03 12:25:32 rM0ce6hj
>>344
ゲームじゃないけど
RAM128バイトでcコンパイラも無いターゲットで仕事したことあるぞ
347:名前は開発中のものです。
07/09/03 13:20:45 BR9raoz2
/' ! ━┓┃┃
-‐'―ニ二二二二ニ>ヽ、 ┃ ━━━━
ァ /,,ィ=-;;,,, , ,,_ ト-、 ) ┃ ┃┃┃
' Y ー==j 〈,,二,゙ ! ) 。 ┛
ゝ. {、 - ,. ヾ "^ } } ゚ 。
) ,. ‘-,,' ≦ 三
ゞ, ∧ヾ ゝ'゚ ≦ 三 ゚。 ゚
'=-/ ヽ゚ 。≧ 三 ==-
/ |ヽ \-ァ, ≧=- 。
! \ イレ,、 >三 。゚ ・ ゚
| >≦`Vヾ ヾ ≧
〉 ,く 。゚ /。・イハ 、、 `ミ 。 ゚ 。 ・
348:名前は開発中のものです。
07/09/03 13:31:16 ckJtc0Qf
128バイト?キーチェーンとかでももう少しありそうなんだが。
つか、8bit以下のCPUならコンパイラよりもアセンブラだろ。
小さいならバイナリを打ち込んだりとか。
349:名前は開発中のものです。
07/09/03 22:41:28 l9Qlmw/p
ワークがちょびっとしかなくても
ROMが十分あればどうとでもなる
350:名前は開発中のものです。
07/09/04 02:25:05 +Mg349f+
もちろんアセンブラ
他に選択肢は無いし
ちなみに、CypressのCY7C63101か何かだった
351:名前は開発中のものです。
07/09/07 22:50:02 CXdTTUEg
時代錯誤のロートルはもう死んでくれ。
お前の糞テクニックなんて今はもう害悪にしかならんよ。
352:名前は開発中のものです。
07/09/10 00:23:29 QZRbzkCO
\|/
/⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄
| ゜Θ゜)< そうでもないよ。
| ∵ つ \______
| ∵ .|
\_/
353:名前は開発中のものです。
07/09/12 13:27:57 ZYdwKK9S
>>346
それってPICだろ・・・・
354:名前は開発中のものです。
07/09/12 15:51:28 +wMsl3iC
>>353
Cypressの8bitマイコンです