やね本発売
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/06/01 20:01ID:Ffonx4Fcという訳で、とりあえず立ててみました。
0067名前は開発中のものです。
02/06/02 15:35ID:???>>65
そうだな。
ただ、値段の安さは目を見張る。
0068名前は開発中のものです。
02/06/02 15:48ID:???まあ名前は適切にするとして・・・
0069名前は開発中のものです。
02/06/02 16:02ID:???あんなの Windows にしか使えねぇだろ。
C++ 標準をなめちゃいかんですよ。
0070名前は開発中のものです。
02/06/02 16:32ID:???エロゲー本なんだから、表紙はもっと***とか***みたいでないと…
間違えて買った厨房が登校拒否しちゃうぞ。
0071名前は開発中のものです。
02/06/02 17:17ID:???はエロ本ともいえるかもしれない。あと、Win畑のプログラマはコンス
ーマとは世界が違うんだなと思い知らされた。
0072名前は開発中のものです。
02/06/02 18:05ID:???お前マジで買う気か?
やめとけって。
真面目な話、あの本の何に惹かれてるの?
0073名前は開発中のものです。
02/06/02 18:10ID:???やめといたほうが無難です
0074名前は開発中のものです。
02/06/02 18:13ID:???それを書かないと突っ込まれるだけだと思われ
0075名前は開発中のものです。
02/06/02 18:38ID:???役に立ちませんでした(思っていたほど)
0076名前は開発中のものです。
02/06/02 19:32ID:???これって具体的にどのあたりをそう感じたの?
0077おらうねや
02/06/02 19:42ID:???GTLって、メガデモオタクのパクリdsk?
0078名前は開発中のものです。
02/06/02 19:47ID:???テンプレートを利用したグラフィックライブラリでGTLを超える物はでてこないね(国産では)
0079名前は開発中のものです。
02/06/02 19:48ID:???メモリ周りの管理のずさんさとかだね。同業種ならわかると思うけど。
エロゲーでメモリーリーク起こして止まる奴とかが多い理由がよーく
解ったよ。
0080名前は開発中のものです。
02/06/02 19:54ID:???メモリ管理ってC++ならnewしたらdeleteする。
これ以外ないと思うんだが。
ここにWindowsプログラマとコンシューマープログラマで
違いが出るのか?
Windowsプログラマはnewしたらdeleteしないんだよって
言っているとしたら、それは暴言もいいところだぞ。
0081名前は開発中のものです。
02/06/02 19:55ID:???0082名前は開発中のものです。
02/06/02 19:56ID:???んなことはない。
0083名前は開発中のものです。
02/06/02 19:58ID:???スマートポインタ使わないのか?
0084名前は開発中のものです。
02/06/02 20:02ID:???スマートポインタに頼り切っているとリークする罠。
0085名前は開発中のものです。
02/06/02 20:05ID:???0086名前は開発中のものです。
02/06/02 20:07ID:???前提にメモリ管理するって事が信じられないって事なんですけど。
デザパタ厨房のその辺の危機感の無さがとても怖い今日この頃です。
0087名前は開発中のものです。
02/06/02 20:07ID:???すべて固定長配列だからリークはない・・というアレ?
0088名前は開発中のものです。
02/06/02 20:12ID:???不満ならSTLにはアロケータ差し替えだったり、placement newを使ったり。
場合によってはoperator newをオーバーライドすればいいじゃん。
0089名前は開発中のものです。
02/06/02 20:14ID:???ヒープのフラグメンテーションって知ってる?
0090名前は開発中のものです。
02/06/02 20:21ID:???なぜnew、deleteとヒープを結びつけるんだよ。
結局は君らが無知なだけじゃん。
簡単に他人をバカにし過ぎなの。
0091名前は開発中のものです。
02/06/02 20:23ID:???それぐらい知ってるのが普通だよ
80でも87でもない上にクソやね本も読んでないけど
ところで晩飯なに食べる?
0092名前は開発中のものです。
02/06/02 20:31ID:???ヒープだろうがスタックだろうが
自分で確保した分を返さなけりゃ
リークすることには変わりないだろ。
ただアプリの終了で帳消しになるか否かで。
>エロゲーでメモリーリーク起こして止まる奴とかが多い理由がよーく
>解ったよ。
この理屈ならコンシューマープログラマは
スタックのおかげでメモリーリークが表面化していないに過ぎない。
0093名前は開発中のものです。
02/06/02 20:31ID:???89じゃないけど、親子丼食った
009489
02/06/02 20:33ID:???ごめん、いってるとこわからないよ。
new/deleteとヒープって元は別物なの?
君らって誰よ?
いつ誰をバカにした?
わからないのは無知だからかなぁ?
>>91
フラグメンテーションをしってたら、
> メモリ管理ってC++ならnewしたらdeleteする。
> これ以外ないと思うんだが。
これじゃぁ済まないと思うよ。
0096名前は開発中のものです。
02/06/02 20:37ID:???漏れはスマポを扱う時はそれに追従する問題点を把握すべきだと
思うのよ。うらやね氏の著にはその辺が欠けてるなぁと。うち等だっ
て気楽にヒープ使えるならつかいてーよ。
>>92
キミ、根本的に間違ってる。出直しておいで。
0097名前は開発中のものです。
02/06/02 20:39ID:???まさか、newしたらOSからメモリを取ってきて、deleteしたらOSに返すと思ってる?
new/deleteをオーバーライドすれば好きなようにカスタマイズ出来るから
断片化が発生するならそれを回避するコードを入れれば良いだけ。
0098名前は開発中のものです。
02/06/02 20:41ID:???0099名前は開発中のものです。
02/06/02 20:44ID:rOylPC2cアロケートって具体的にどういう事してるかって、皆分かって
るよね?
なら、ここでメモリの分断化が問題視されてる理由も分かる
よね?
とりあえず分からなかったら、「プログラミング言語C」を読む
のをお勧めする。
0100名前は開発中のものです。
02/06/02 20:49ID:???あんた89?
new したら delete すると分断化(?)が起こる理由を説明してくれ。
0101名前は開発中のものです。
02/06/02 20:49ID:???>>断片化が発生するならそれを回避するコードを入れれば良いだけ。
すげぇなぁ。そんなコードがあるなら最初からmallocなんか存在
しねーよ。厨の妄想にはついていけないよ。
0102名前は開発中のものです。
02/06/02 20:51ID:???使ってないのはスーパーファミコンから進歩していないヲヤジグラマぐらい。
彼らはヒープ=断片化といったステレオタイプな考えから一生抜けられないと思うから
相手にしないほうが無難。
0103名前は開発中のものです。
02/06/02 20:52ID:???↓
------------------
foo1 = new ...
+++++-------------
foo2 = new ...
+++++****---------
foo3 = new ...
+++++****#####----
delete foo2;
+++++----#####----
0104名前は開発中のものです。
02/06/02 20:53ID:???ハァ?
0105名前は開発中のものです。
02/06/02 20:54ID:???そういうときはfoo4をnewするときにfoo2の領域を再利用すれば良いだけ。
0106名前は開発中のものです。
02/06/02 20:55ID:???物凄くハズカチー発言なんですが、あなた頭大丈夫ですか?
new/deleteをオーバーライドして固定長のバッファを割り当ててやればいいだけ。
010789
02/06/02 20:55ID:???>>100
分断化に(?)つけてる奴に説明できる自信はありません。
とりあえず、Google 検索である程度いけるみたいだからそっちに逝ってくれ。
キーワードは ヒープ フラグメンテーション だ。
Windows好きなら「喜びと苦悩」とかも読んだらいいかモナぁ。
0108名前は開発中のものです。
02/06/02 20:55ID:???ヒープオンリーでメモリ管理できるなんてメモリを最大まで使わない
ギャルゲーぐらいじゃねーの?シーン毎に複雑なテクスチャやモデル
の入れ替えが発生するタイプのゲームではメモリなんてあっというま
にズタズタだよ。
010999
02/06/02 20:56ID:???すまん、「プログラミング言語C」を出したのは煽りでは無くてAlloc
の書き方が載ってるんですよ。何ページかは忘れましたが。
もちろん一度newとdeleteしただけでは問題ないですよ。
011199
02/06/02 20:58ID:???混乱させてすまぬ。
0112名前は開発中のものです。
02/06/02 20:58ID:???すまないね。漏れは断片化って言うもんだと思ってたから、
分断化が一般なのか?って意味で(?)をつけた。
0113名前は開発中のものです。
02/06/02 20:58ID:???0114名前は開発中のものです。
02/06/02 21:00ID:???訳がわからなくなった。
0115名前は開発中のものです。
02/06/02 21:01ID:???もちっと、勉強すれ。
0116名前は開発中のものです。
02/06/02 21:01ID:???機種依存で良いなら(スタック上など)どのようにでも
0117名前は開発中のものです。
02/06/02 21:02ID:???だからさぁ、一つのヒープで全部管理しようというのがそもそも間違いなわけよ。
テクスチャ用ヒープ、モデル用ヒープ、タスク用ヒープ、エフェクト用ヒープ、制御用ヒープ
それぞれ固定長で確保してその中でやりくりするわけ。
またシーンの切り替えなどで定期的にリセットしてやるわけ。
ゲームの進行に関わる重要な部分はスタティックなメモリを使えば良いだけ。
0118名前は開発中のものです。
02/06/02 21:03ID:???まあタイトな部分はすでメモリプールにしちゃっていたものの、
心配しすぎては損だとの印象を得た。
0119名前は開発中のものです。
02/06/02 21:04ID:???そういう事ではないよ
君のアロケーターはサイズ指定が出来なくて、必ず同じ大きさの
メモリしか取れんのか?
0120名前は開発中のものです。
02/06/02 21:04ID:???たとえ書いてあったとしても、それは些細な問題で、
メモリさえ確保できればヒープ上だろうが静的領域だろうが問題じゃありません。
望みのままに逝けます。それを言語の機能やライブラリでサポートした物が
STLのアロケータだったり、newとdeleteのオーバーライドだったりします。
それから、好きな位置に確保できる配置newという構文も用意されてます。
012189
02/06/02 21:05ID:???あー、そういうことでしたか。
まぁ簡単な例だと、 >>102 あたりだとおもいます。
>>116
粘着ですんませんが、
どのように取ってきたメモリでも、固定長バッファとして割り当てられるような
new/deleteのオーバーロードの仕方を教えてください。
0122名前は開発中のものです。
02/06/02 21:05ID:???メモリリークしたくらいで、プログラムが止まるわけねーだろ。
012386
02/06/02 21:05ID:???申し訳ないです。ここまでの流れを見てもらえば解るようにコンスマ
とウインにはメモリ管理に大きな壁があるのですよ。それはもう実績
から来る理論なのでここであーだこーだゆーても決着はつかんですね。
で、自分の目から見てコードサイズが膨れ上がるstlをベースにライブ
ラリ設計していたりとか、メモリへの危機感が少ないなーと。ただそ
れだけの感想です。
もちろん一般的なWinプログラマはちゃんと諸々の問題に真剣に取り組
んでいる事ぐらいは知っていますよ。(エログラマは怪しいが)
0124名前は開発中のものです。
02/06/02 21:06ID:???やね本には、そんな高度な事は書いてないに違いない。
0125名前は開発中のものです。
02/06/02 21:07ID:????
>>79はWinプログラマはメモリ管理が杜撰だと言ってるのに対して
>>86がヒープ使ってるから駄目だと言い出したのが原因じゃん。
メモリ管理と銘打つ以上スタックだろうがヒープだろうが
リークは起こるんだよ。
プログラム側で、スタックの上のあるメモリ領域が使用中だと判断すれば
他の目的には使えないことには変わりないんだから。
0126名前は開発中のものです。
02/06/02 21:08ID:???静的メモリでも、動的メモリでもお好きなように。
4byte要求されても、224byte要求されても256byteずつ割り当ていれば断片化は起こらんでしょ。
256byte以上要求されたら、NULLを返す。
当たり前だけど、汎用には使えないから対象となるクラスのnew/deleteだけをオーバーライドするんだけどね。
0127名前は開発中のものです。
02/06/02 21:11ID:???>メモリリークしたくらいで、プログラムが止まるわけねーだろ。
メモリリークは >79 が、
>エロゲーでメモリーリーク起こして止まる奴とかが多い理由がよーく 解ったよ。
と知ったかぶりしてるだけなので、無視しときましょ。
0128名前は開発中のものです。
02/06/02 21:12ID:???今後は特殊な例を出してそれを一般化するのはヤメレ
0129名前は開発中のものです。
02/06/02 21:13ID:???0130名前は開発中のものです。
02/06/02 21:13ID:???0131名前は開発中のものです。
02/06/02 21:14ID:???いや、いろんなものの開放し忘れで止まるエロゲー多いよ。
大体は発売後のパッチで直るけどね。79は単純にそういう危機感の
無さを指摘してるだけだとおもうよ。ねぇ、やねうらおさん?
0132名前は開発中のものです。
02/06/02 21:15ID:???0133名前は開発中のものです。
02/06/02 21:15ID:???class Texture
{
static void* heap;
size_t index;
public:
inline operator new(size_t size)
{ return static_cast<char*>(heap) + index; }
operator delete();
};
void* Texture::heap = (望みのままに);
こんな感じでテクスチャごとだったり、モデルごとにヒープを確保できて、
勿論operator newの中身は書く。
void* global_heap = (利用可能なメモリすべて);
として、グローバルなoperator newを定義すればすべての管理を掌握出来、
char buf[0x1000];
new(buf) Object;
これでbuf上にオブジェクトを作成できる。
C++の基礎中の基礎
0134名前は開発中のものです。
02/06/02 21:16ID:???大局的には、STLとかそういう便利な機能を
使えるようにする為にあると思うんだよなぁ。
文句を言うべきなのは、クラシックな方法を強いる
環境の方だよ。
0135名前は開発中のものです。
02/06/02 21:17ID:???それを知らないとハマるかもしれないことは分かります。
で、real smart pointerはそのへんの心配はないのでしょうか?
0136名前は開発中のものです。
02/06/02 21:18ID:???頼むから名前を挙げてくれ。
解放し忘れただけで止まるプログラムなんか知らない。
メモリを食いつぶすだけだろ。
(Winにおいて)リソースリークは深刻だが。
0137名前は開発中のものです。
02/06/02 21:18ID:???発生した気がする。
ライブラリスレも同じように荒れた記憶があるのだが。
0138名前は開発中のものです。
02/06/02 21:18ID:???足りなければ増設してください、貧乏人
0139名前は開発中のものです。
02/06/02 21:19ID:???そうゆう方向に進化した唯一のハードであるXBOX様がいま命の灯火を消そ
うとしているところなのでヒープとの果てしない争いは終わる事が無いと
思われ。
0140名前は開発中のものです。
02/06/02 21:19ID:???巡回参照にさえ気をつけていれば問題ない(リークは起きない)。
real smart pointerって何か知らないんだけど、GCのサブセットか何か?
0141名前は開発中のものです。
02/06/02 21:19ID:???0142名前は開発中のものです。
02/06/02 21:20ID:???だから、知ったか厨は無視しましょ。
0143名前は開発中のものです。
02/06/02 21:21ID:???確保したら開放する、これの方がすっきりして気持ちイイじゃん。
皆さんはどう?
0144名前は開発中のものです。
02/06/02 21:22ID:???オヤジが良く使う、固定長バッファのタスクシステムと何が違うのかと小一時間・・・。
0145名前は開発中のものです。
02/06/02 21:22ID:???それって78の記事?
直接この流れには関係ないと思うが。
事実、裏男のライブラリよりもNxDrawよりもVafxImg(だっけ?)よりも
素晴らしいテンプレートの使い方をしていると思うよ、GTLは。
0146名前は開発中のものです。
02/06/02 21:22ID:???イタタ…。
0147名前は開発中のものです。
02/06/02 21:22ID:???漏れはそれだけの理由で避けてます(笑。
毎回似たようなクラス(双方向リストとか)書くのは
確かに効率悪いけど、自分の勉強の為には結構
役立ったと思うのだが。
0148名前は開発中のものです。
02/06/02 21:24ID:???0xffffffff回以上の参照が起こった場合は大丈夫なの?
あと、循環参照ってどこで発生するかわからないから怖いね。
相互参照ぐらいなら把握可能なのだが。
0150名前は開発中のものです。
02/06/02 21:24ID:???勉強にはなるだろうけど、実際に使うときは広く使われているものの方が
問題があるのかどうかが分かってていいでしょ(いろんな人の目に触れてるわけだから)
0151名前は開発中のものです。
02/06/02 21:24ID:???漏れの場合、はじめはSTLは無条件に正しいと信じてStepOverしてます。
で、どうしても解決しないときのみSTLの内部にStepInします。
>>146
142が痛いなら、メモリの解放し忘れで落ちるプログラムを上げてください。
別に市販のエロゲでも人命に関わるシステムでもかまいません。
0152おらうねや
02/06/02 21:25ID:???0153名前は開発中のものです。
02/06/02 21:25ID:???0154名前は開発中のものです。
02/06/02 21:26ID:???0155名前は開発中のものです。
02/06/02 21:26ID:???俺の場合逆。
STL自体にはバグがないことが保障されているから、安心して使える。
毎回似たようなクラスを書いていると、そこにいつバグが入るかわからないから不安。
0156名前は開発中のものです。
02/06/02 21:26ID:???0157名前は開発中のものです。
02/06/02 21:29ID:???何をムキになってんだか。
>>解放し忘れただけで止まるプログラムなんか知らない。
これがイタイってだけですが?
0158名前は開発中のものです。
02/06/02 21:29ID:???入りません。ってか、ネタ?
0159名前は開発中のものです。
02/06/02 21:31ID:???が、何か?
0160名前は開発中のものです。
02/06/02 21:37ID:???解放忘れだけで止まるプログラムあるんですか?
マジでわからん。
0161名前は開発中のものです。
02/06/02 21:40ID:???1、スワップ大量に発生して、止まったように見える
2、newしたところ、NULLが返ってきて、NULL参照で落ちる。
のどっちかかと。
0162名前は開発中のものです。
02/06/02 21:40ID:???ま、そうムキにならずに。
エロゲなんで、プラットフォームはWinを前提に話すけど、
深刻なリソースリークを除いて、メモリリーク程度で止まるようなことはまずないよ。
強制終了するのは、ほとんどアクセス違反じゃねーの?
固まるってのは、ループの終了条件ミスってるとか。
マルチスレッドのゲームも珍しくないけど、デッドロックしてるのもあったし。
0163名前は開発中のものです。
02/06/02 21:45ID:???0164名前は開発中のものです。
02/06/02 21:45ID:???1 普通はDMA転送になるから、スワップアウト程度でアプリが固まることはまず無い(9xは知らん)
2 それはリークではなくて、エラーリカバリが甘いだけ。
0165名前は開発中のものです。
02/06/02 21:47ID:???断片化の話題が終了したから(内心は79が謝らないから 藁)
0167157
02/06/02 21:48ID:???んにゃ、なんかスレの流れ上メモリリークの件が何故か漏れに
押し付けられてるんだけど、別にエロゲ云々言い出したのは別の
人なんだよね。
まぁそれはともかく、止まる止まらないはともかく、メモリリーク
なんて恥ずかしい物を止まらないからOKってのがイタイなと思っただけ。
■ このスレッドは過去ログ倉庫に格納されています