常時CPU使用率が100%にならないエロゲー

このエントリーをはてなブックマークに追加
952名無しさん@初回限定:03/06/15 00:34 ID:QdGxzy3B
>>948
>どのレベルの厳密さを持って0なの?
理論値でも実測値でも。

>translateしたりdispatchしたりする負荷
Sleepはそういう負荷は発生しないと言うわけ?

>君はやったことあるの?
残念だがおれはやったことはない。

と言えば満足なのか?
やったことのないほうが少数派だと思うが。

>経験した上で、エロゲエンジンみたいな小さなものにも有効だと考えてるの?
大きい小さいでオブジェクト指向の有効無効が決まるわけじゃない。
やっぱりわかってない。
953名無しさん@初回限定:03/06/15 00:48 ID:Djf8KivE
独学で我流コーディングばっかりやっていた中卒だろうて>スリープくん
頭の悪さと心の幼さ、そしてアカデミックな事物に対する反感が、
文章のそこかしこから伺える。
954名無しさん@初回限定:03/06/15 01:02 ID:jtDAPTxj
でもsleep()で事足りるんならそれでいいんじゃないの?
「もっといい方法があるよ」
「そんなんやってるひまない」
「そうか」
でいいんじゃないかと。
進みたい人は自ら進んでいくんだし。
ある意味親切な香具師らと思うけど、
正しさを以って相手を追い詰めるのは手法としては考え物だよ。
955名無しさん@初回限定:03/06/15 01:42 ID:nm74Veyy
>>954
おっしゃるとおり。
956名無しさん@初回限定:03/06/15 01:55 ID:+q0/wim3
だな。
957名無しさん@初回限定:03/06/15 02:58 ID:tGfk8d1O
>952
えーと、translateとかdispatchの意味分かってるか?
タイマイベントごとにメッセージ投げさせるとかしなければ、
そういうプロセスは通らないわけだが。
>953
具体的な反論はない、ってことだね。
958名無しさん@初回限定:03/06/15 03:02 ID:tGfk8d1O
>952
っていうか、CPU負荷0なんてありえない。
GetMessageとSleep+PeekMessageで、君がどのくらいのCPU負荷の差を
見込んでいるのかにちょっと興味ある。
>949の意見についてはどう思う?

Sleepとタイマ監視だと、タイマメッセージ機構を通さないので、
tlanslateもdispatchも必要ない。

で、お前はオブジェクト指向設計をやったことあるのかないのか。
いっとくが、上の人がオブジェクト指向にそって設計したものにしたがって
VBでフォームを作るのは「設計作業」じゃないからな。

オブジェクト指向は、大規模プロジェクト用に開発されたものだぞ。
お前は一人でファイルのフィルタ処理を組むときでもオブジェクト指向でやるのか?
959名無しさん@初回限定:03/06/15 10:26 ID:n3USbvuP
>お前はオブジェクト指向設計をやったことあるのかないのか。
なんなんだよおまい
このスレみてるとこれがしょっちゅう出てくるんだが・・・

>お前は一人でファイルのフィルタ処理を組むときでもオブジェクト指向でやるのか?
やりますよ。
まあ どうせたとえば十数行のプログラムでC++標準のiostreamつかったぐらいじゃ
必死になって「それはオブジェクト指向設計」じゃないっていうだろうがな。

よく覚えとけ、モデリングを行うのも(クラスライブラリを作るのも)、
モデル化されたものを使うのも(クラスライブラリを使うのも)、どっちも
オブジェクト指向設計だ。
960名無しさん@初回限定:03/06/15 10:45 ID:tGfk8d1O
>959
えーと……マジで言ってる?
iostreamを使えばオブジェクト指向ですか(w
じゃあ俺も立派にオブジェクト指向だな。
961名無しさん@初回限定:03/06/15 11:29 ID:QdGxzy3B
>>958
> >949の意見についてはどう思う?
OSの勉強してくれよ。タイムスライスって知ってるか?

>で、お前はオブジェクト指向設計をやったことあるのかないのか。
ないほうがおかしいって。
仕事でも趣味でも使うだろ普通。

>オブジェクト指向は、大規模プロジェクト用に開発されたものだぞ。
この思い込みはどこからきてるんだか。
962名無しさん@初回限定:03/06/15 11:34 ID:qKKlI5Jy
なにこいつ
最初からクラスから全部書くのがオブジェクト指向だと思ってるの?
再利用とかの概念はないのか?
さすがだな
963名無しさん@初回限定:03/06/15 11:44 ID:tGfk8d1O
>959
例えば俺だって、stringもテンプレート使ったlistもauto_ptrも使ってるし、
OSのリソースやDirectXインタフェースはクラスで取得・解放・各種操作を
ラップしてるし、セーブ/ロードはシリアライズ機構っぽいもので実装してる。
今時のプログラマなら当たり前だし、それだけではオブジェクト指向ではない。

オブジェクト指向というのはそういうことではないのだよ。
手続き指向と対になる語だからな。データを処理する手続きを記述するのではなく、
オブジェクトの振る舞いを記述し、動作はオブジェクト間の通信で表現するわけだ。
そういう設計をするのに、たとえばUMLとかを使うわけだな。
キモの部分はこの設計フェーズで、そこがきっちりしてさえいれば、普通のCでも
オブジェクト指向プログラミングは出来る。向いてはいないというだけだ。
逆に、そういう設計をやってるんじゃなければ、いくらC++を使おうが、それは
オブジェクト指向プログラミングとは言えないんだよ。
たとえクラスライブラリを自前で用意したり使ったりしていても、コードが
フローチャートやデータフロー図から起こした手続き指向アルゴリズムの発想で
書かれていれば、それは手続き指向だ。


>961
SleepでもWaitFor〜でもタイムスライスは明け渡されますが何か?

フローチャートがペラ数枚で収まる程度の小さな物を一人で書くのに、
わざわざUML書いてオブジェクトやクラスで問題を切り分けて
オブジェクト間の通信を細かく規定して、とめんどうなことをやる
必要があるとは思えんのだが。
OSの設計とかクライアント−サーバシステムとかになると、
これはもうオブジェクト指向の本領発揮だってのは分かるんだがな。
964名無しさん@初回限定:03/06/15 11:52 ID:hCnA0lc0
そんなこといったらそこらのクラスライブラリのなかみは手続き指向まみれですが。
なんかもうオブジェクト指向がなんたるかを
もう一回学んでこい。
せいぜい2Chで今のうちに恥をかいておけ。
965名無しさん@初回限定:03/06/15 11:55 ID:tGfk8d1O
>964
いや、中身の話はしてないだろ。
ちゃんとオブジェクト指向の設計してるのか、という話をしてるのだが。
例えば、一度もUML書いたことのないやつが、クラスライブラリを
ちょっと使ったからといって、オブジェクト指向プログラマを
名乗るのはどうかと。そんなこといったらDirectXインタフェースだって
一応クラスライブラリなんだから、あれを使えばみんなオブジェクト指向か?
966名無しさん@初回限定:03/06/15 12:02 ID:E6bqJuMA
なんでこいつはオブジェクト指向かどうかに拘ってんの?
オブジェクト指向はこうであるべきって固定概念にも凝り固まってるしな
967名無しさん@初回限定:03/06/15 12:03 ID:tGfk8d1O
コードが、っていうのがまずかったか。
実装方法がどうこうというんじゃなくて、あくまで設計の話ね。
メインルーチンがあって、そこからいろんなクラスライブラリを使って
一連の<手続き>を記述するようなスタイルで開発した場合、
それは単にクラスライブラリを使った手続き指向プログラミングだ。
データを抽象化するだけではオブジェクト指向じゃない。
オブジェクト間の通信が処理を駆動するタイプじゃないと。
968名無しさん@初回限定:03/06/15 12:05 ID:hCnA0lc0
基礎が見えてないからうわべでしか語れないんだな
969名無しさん@初回限定:03/06/15 12:07 ID:n3USbvuP
>オブジェクト間の通信が処理を駆動するタイプじゃないと。
ほう

いや

まあいいや
好きにやれ
970名無しさん@初回限定:03/06/15 12:10 ID:QdGxzy3B
馬鹿らしくなってきた。

>>949
>Windowsのメッセージもイベントも、ハードウェア割り込みではない。
>全部Windowsがソフトウェアで実装しているものだ。機械語コードだ。

>>963
>SleepでもWaitFor〜でもタイムスライスは明け渡されますが何か?

タスクスケジューリングの勉強をしてください。

>>963のほかの部分
オブジェクトとメッセージについて勉強したのですね。
えらいえらい。
971名無しさん@初回限定:03/06/15 12:10 ID:tGfk8d1O
>969
いや、やらんよ? 俺は手続き指向で組んでるもの。
クラスライブラリはそれなりに使うけどな。
972名無しさん@初回限定:03/06/15 12:12 ID:tGfk8d1O
>970
前二つ:
どこか間違ってたか? もうちょっと説明するか、あるいは
理解できそうなソースでも示してくれんか?

最後の:
勉強も何も、こんなの基礎の基礎だろ。
973名無しさん@初回限定:03/06/15 12:47 ID:tGfk8d1O
確認しておきたいが、君達はマジでiostreamを使うことを
オブジェクト指向だと思っているのか?
あるいは、ソースにclassって書いたらそれでオブジェクト指向か?
974名無しさん@初回限定:03/06/15 15:19 ID:YCaRmF7p
スリープくん、突破口を開こうと必死だな(w
そんな単純なモノじゃないことは分かってるだろうに。
975名無しさん@初回限定:03/06/15 15:46 ID:bLKw2Gh0
ユーザーは実装部分は見れないんだから、各々が効率の良いプログラミングスタイルで
コーディングすればいいんちゃうん?

それじゃあかんの?
976名無しさん@初回限定:03/06/15 15:46 ID:bmF+SeV5
ユーザプロセス-サブシステム間の遷移
同じくマルチメディアタイマ使った場合のスレッド遷移
それぞれの9x/NTでの違い

くらいのことは把握してないと駄目だよ。まぁがんばってくれたまい。
977名無しさん@初回限定:03/06/15 16:01 ID:tGfk8d1O
>974
オブジェクト指向でファイルのフィルタ処理を書くって言うから、
どんな風に書くつもりだろうと思ったんだよ。それも十数行かよ。
メソッドがひとつだけ、mainからオブジェクトを作成して、
処理をして、デストラクタで終了か。
そんなの手続き指向でmainの中に書いちまったほうがいいだろ。
ゲームのバイナリデータはバイト単位か、せいぜいワード単位で
扱うものだから、iostreamを使う旨みに欠ける。fgetcでいいだろ。

>975
まあ、ユーザからすりゃそれで話は終わるなあ。

>976
だから、具体的にどう間違ってるか指摘してみて欲しいんだが。
お前、それらしいこと並べたらなんとなく買った気になれると思ってるだろ?
978名無しさん@初回限定:03/06/15 16:08 ID:zaZOXLJQ
なんかもうあきれて。
ちっとは自分で調べろよ。
979名無しさん@初回限定:03/06/15 16:09 ID:tGfk8d1O
調べさせるにしてもだ。もうちょっとポイントを突いた指摘の仕方があるだろ。
これこれこういう意味で俺の発言のこの部分は間違っている、と指摘してみろよ。
980名無しさん@初回限定:03/06/15 16:27 ID:tGfk8d1O
マルチメディアタイマからハンドラで何か関数を呼び出すとしよう。
呼び出すところまでは、NT系のOSならある程度まではCPUとかタイマの
ハード的な機構がやってくれるのかもしれん。それをいいたいんだろ?
(でも、ユーザの半分くらいはまだ98やMeなんじゃなかったっけか)

問題はここからだ。待機中のGetMessageに拾わせるなら
PostMessage、WaitFor〜で拾わせるならSetEventを、そのハンドラから
呼び出すわけだろ。ここはユーザの書くコードだ。
そこで一旦イベントなりメッセージなりがOS内を通って寝ている
スレッドを起こすわけだが、この一連の処理と、適当にSleepしながら
たまにtimeGetTimeしてPeekMessageする処理とで、本当に前者が軽いのか?
つか、timeGetTimeとPeekMessageとif文一個がそんなに重いか?
981名無しさん@初回限定:03/06/15 16:32 ID:qWX6UxI8
まずオブジェクト指向には「こうするのが理想的」はあるが「こうしなければならない」はない。
あと、局所的にオブジェクト指向を使うのもありで、全部をオブジェクト指呼で書かなければならない道理はない。
大体がC++で書くにしろ、中途半端なオブジェクト指向しかできないC++でどうしろと。
982名無しさん@初回限定:03/06/15 17:43 ID:tGfk8d1O
>981
言いたいことは分かるが、それだとDirectXを使うだけで局所的に
オブジェクト指向で書いた事になってしまう。
やっぱり、オブジェクト指向云々人に勧めるのであれば、
設計の段階でオブジェクト指向的にやってほしいところではある。
983名無しさん@初回限定:03/06/15 18:51 ID:qFAbVF1r
>>927
VBではなくて、Javaですよ(藁

クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/test/read.cgi/tech/1045891783/725-
984名無しさん@初回限定:03/06/15 19:01 ID:q3W3FlWx
985名無しさん@初回限定:03/06/15 19:11 ID:tGfk8d1O
>983
どうしてその一連の流れで勝った気分になれるのか不思議だ。
ポーリングだと100%とか言ってる時点で勘違い野郎じゃねえの。

まあ、趣味の悪い原色のボタンをフォームにゴテゴテ貼り付けて、
それを押したらサーバーに何かメッセージを投げるだけ、
みたいな物ばっか作ってたら、そうでないアプリのことなんか
想像も出来なくなってしまうんだろうけどな。
986名無しさん@初回限定:03/06/15 19:42 ID:UjoLS4nA
次スレ

常時CPU使用率が100%にならないエロゲー Part2
http://www2.bbspink.com/test/read.cgi/erog/1055673723/
987名無しさん@初回限定:03/06/16 07:21 ID:I/+9Ywhx
GetMessage+マルチメディアタイマにするなら「はい」
PeekMessage+Sleepにするなら「いいえ」を選択、では
前者が5%、後者が10%だった(C3-533
988名無しさん@初回限定:03/06/16 09:21 ID:OBP/IeHb
あの程度の処理で5%にもなるのか?
989名無しさん@初回限定:03/06/17 04:44 ID:35PExtoL
成る。体感的にはどちらも変わりない。
むしろoggを採用されるプログラマにoggのデコード/ストリーム再生1本あたり
30%超でCPU使用率を持っていってしまうのを何とかして頂きたいと願う。
990名無しさん@初回限定:03/06/17 04:54 ID:Du3DDD2H
>989
あれが5%って、どんな環境なんだ?
ソースがあるから中身を見られるわけだが、本当にGetMessageと
そこからの関数コールとTextOut一回しかしてないぞ。
そして、そこまでシビアな環境でも、体感的には変わらんのね。

Oggは重いからしゃーないって。
991名無しさん@初回限定:03/06/17 05:13 ID:6e01dT9R
きっとPCがショボイんだよ
992名無しさん@初回限定:03/06/17 06:21 ID:wLsj4Arx
>C3-533
これが全ての元凶だろ。つかこんな糞CPU使っといて重いとかいうな
993名無しさん@初回限定:03/06/17 07:03 ID:O52Wu7T9
Celeron450MHz で Winamp で vorbis を再生しても12%くらいしかもってかれないから30%もっていくなら反省しるな気もするが。
994名無しさん@初回限定:03/06/17 11:47 ID:Du3DDD2H
>993
同じマシンで比べないと意味無いぞ。>989のは、ただの533じゃなくて、
他に何かもっとひどい要因がありそうに思われ。
9951000!:03/06/17 22:58 ID:HNIcYTiZ
1000!
996名無しさん@初回限定:03/06/17 22:59 ID:wRmDInXQ
997名無しさん@初回限定:03/06/17 23:33 ID:fNur4uv1
C3-533の性能はP2-300並だから(ry
998名無しさん@初回限定:03/06/18 00:11 ID:xhV9dldl
つかC3だと浮動小数点演算能力が同クロックCeleronの1/3から1/2だから
使用率の比較では993の数値と合う。
oggデコーダがC3の3DNOWを利用できるようにしてやればCPU使用率で
6-10%改善すると思われ。
9991000!:03/06/18 01:08 ID:oU1CZAWe
1000!
10001000:03/06/18 01:10 ID:6c/nu5PN
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。