- ゲームプログラムなら俺に聞け32©2ch.net
396 :デフォルトの名無しさん[sage]:2015/10/26(月) 08:07:26.33 ID:+K79pdG1 - >ポーリングする側の比較をするべきだろう。
ポーリングする側はロードが完了したかどうか問い合わせるだけだから 何の問題にもならないので比較対象にもならない スレッドでやろうが、スレッドを使わずにやろうが、 ロード画面のUpdate内でロードが何%完了したか調べるのには変わりないからな >タスクと変わらない制限だから 全然違う 普通のタスクは自分の仕事を最速で処理して制御を返すだけ ロードタスクは16msの持ち時間をなるべく多く使ってロード処理をしなければならない 16msより時間がかかるとコマ落ちする、16msより短いとアイドル時間が出来てロード全体が長くなる ジャスト16msだけロード処理をしなければならない しかし、HDDやCDやSSDへの一回のアクセスが何msかかるかは誰にも分らない ジャスト16msで制御を返すのは難しい スレッドを使ったほうが効率的で簡単 >Fiber なんか Fiber言い出したのは例の人だから俺は知らん
|
- ゲームプログラムなら俺に聞け32©2ch.net
399 :デフォルトの名無しさん[sage]:2015/10/26(月) 10:56:00.19 ID:+K79pdG1 - 付け加えておくと、スレッドを使わずにロード画面のアニメーションをしつつロード処理をするのは
「16ms調度で制御を返さなければ時間に無駄が出る」以外にも面倒な事がある これはマイクロスレッドやファイバーやコルーチンと呼ばれているものを使えば解決する問題では有るんだが 使わなければ大変に面倒な事態になる マップをロードする場合、マップをロードする関数を呼び出すだろうが、大体マップというものは巨大で 沢山のテクスチャを使っていたり、すべてロードし終わるのに時間がかかる 何も考えずにマップをロードする関数を呼び出すと、その関数から制御が帰ってくるのに16ms以上かかってザワールドする だから、マップをロードする処理を細切れに分解して一回のロード時間を短くして16ms以内に制御を返せるようにする しかしその場合、スタックフレームに途中状態を保存できないので大変面倒な事になる この問題はコルーチンを使えば解決するが、コルーチンを使ってもどの道「16ms調度で制御を返さなければ時間に無駄が出る」 問題が有るので結局スレッドを使ったほうが賢い
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
362 :デフォルトの名無しさん[sage]:2015/10/26(月) 11:04:40.12 ID:+K79pdG1 - >おい、作ったからこれを使え
おかしなことを言うね もともと現場に合わせてカスタマイズするのが仕事なのに カスタマイズからカスタマイズを引き算すると、もう仕事ないよ それが嫌ならソースネクストみたいにパッケージソフトを作って売ればよい もしくはヒロユキや楽天みたいにネットサービスを始めるか、スマホアプリ作るとか アメリカみたいにパッケージソフトを世界中で売れば大儲けできるよ、やれば?
|
- ゲームプログラムなら俺に聞け32©2ch.net
402 :デフォルトの名無しさん[sage]:2015/10/26(月) 12:23:56.85 ID:+K79pdG1 - 自鯖そのものが別スレッドで動いているという事実
それをソケット経由で非同期に読み込むあほさ加減 結局ローディング鯖という名のローディングスレッドを作成しているwww 遠回りでパフォーマンスも悪く面倒なだけ あほの発想 非同期が良いなら、そんなことをしなくても ReadFileには非同期読み込みのオプションが有る
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
366 :デフォルトの名無しさん[sage]:2015/10/26(月) 12:36:31.39 ID:+K79pdG1 - >>363
言語は別にカスタマイズではないだろう どちらかといえばパッケージに近い カスタマイズとそうじゃないものの違いは 自分たちが手を加えて仕事をした部分が その案件固有のものか、他の案件でも通用するかの違い 他の案件でも通用するなら一般化してパッケージ化して売ればよい 言語は色々な案件で使いまわすものだから、どちらかといえばパッケージに近い もちろん、その案件固有の専用言語を作ったというなら、その言語はカスタマイズだろう
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
367 :デフォルトの名無しさん[sage]:2015/10/26(月) 12:51:36.58 ID:+K79pdG1 - >その案件固有のものか、他の案件でも通用するかの違い
通用というより流用の方が正しかったわ 色々な案件で流用できるものは、一般化してパッケージ化してしまおうってのは当然だ マイクロソフトもオラクルもそうやって儲けている 一方で案件ごとに異なるような、細かな部分まではパッケージ化できないのでシステム屋の出番だ システム屋はパッケージソフトでは埋められない細かな部分を パッケージソフトを組み合わせつつもシステム化して何とかするのが仕事なのだから それを放棄して、「おい、作ったからこれを使え」を言ってしまっては仕事がない そういうことを言いたいなら、パッケージソフト屋になるしかない
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
368 :デフォルトの名無しさん[sage]:2015/10/26(月) 13:00:05.66 ID:+K79pdG1 - 「おい、作ったからこれを使え」
これの裏には大事な前提が抜けている 本来は 「他の皆も押しなべてこれを使っていて、沢山の顧客で買い支えているから一人頭が安いので、お前もこれを使え」 だ 自社の案件だけの特注品で、公共性もなく、一点もので高いのに、 「おい、作ったからこれを使え」 は通用しない 一点ものは細かなカスタマイズを注文されて当然
|
- ゲームプログラムなら俺に聞け32©2ch.net
404 :デフォルトの名無しさん[sage]:2015/10/26(月) 13:14:25.72 ID:+K79pdG1 - 別ライブラリでスレッドを作らせて
それをソケット経由で非同期に読み込むあほさ加減を指摘しているだけ 単に非同期に読み込みたいならReadFileでも出来る ソケット経由にする意味がまるでない
|
- ゲームプログラムなら俺に聞け32©2ch.net
406 :デフォルトの名無しさん[sage]:2015/10/26(月) 13:34:26.70 ID:+K79pdG1 - https://msdn.microsoft.com/ja-jp/library/cc429679.aspx
>ReadFile >GetLastError 関数は ERROR_IO_PENDING を返します。 >この結果、呼び出し側プロセスは読み取り操作が完了する前に、他の作業を実行できます。 >その後、読み取り操作が完了すると、OVERLAPPED 構造体で指定したイベントがシグナル状態になります。 ソケットとか自鯖とか、必要なし、始めから無意味 そもそもスレッド使うならOVERLAPPEDも必要ないわけだがな
|