トップページgamedev
1001コメント329KB

C/C++ゲーム製作総合スレッド Part5

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2014/01/16(木) 00:00:31.27ID:w6WW3hAo
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その17
http://toro.2ch.net/test/read.cgi/gamedev/1383795645/

前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
0025名前は開発中のものです。2014/01/19(日) 11:54:37.95ID:zArRV3lb
>>24
いや、もっとおっさんになってから
ガキだったなHAHAHAって笑えばいい
0026名前は開発中のものです。2014/01/19(日) 12:09:14.19ID:TJLqrM7y
なにそれブラック企業?w上司もプログラマーなら感情論抜きで論破しろよ
0027名前は開発中のものです。2014/01/19(日) 12:26:00.28ID:r/kDygNK
プログラ”マ”板で話すことを、何でここで引っ張ってるんだよ。
http://kohada.2ch.net/prog/
0028名前は開発中のものです。2014/01/19(日) 14:14:56.82ID:Ln30iNfr
>>23
MFCのCStringは扱いやすいよ
とりあえず自前で実装したが
0029名前は開発中のものです。2014/01/19(日) 20:23:57.46ID:vj8v8wNW
>>23
auto_ptr使えばよくね?
0030名前は開発中のものです。2014/01/19(日) 20:49:07.44ID:dxh/zY+y
小さいことが積み重なって不便という意味でな
0031名前は開発中のものです。2014/01/21(火) 07:47:41.61ID:6mpa2LLJ
何でもかんでも自力で作るかライブラリ頼みになるからな
そーゆーのが嫌いな人には向かないのかもな
0032名前は開発中のものです。2014/01/21(火) 10:53:50.44ID:k20gbOyK
ゲーム用途だと結局何でもスクラッチになっていくんですけどね…
0033名前は開発中のものです。2014/01/21(火) 20:38:32.81ID:ZBJojU/1
オレオレライブラリを経てオレオレゲームエンジンを作り
そして個人利用フリーのゲームエンジンに触れて無意味だったと知る
0034名前は開発中のものです。2014/01/21(火) 21:36:58.77ID:/+yIHRaD
>個人利用フリーのゲームエンジン

ぜひ教えて欲しい。
0035名前は開発中のものです。2014/01/21(火) 21:44:06.65ID:HN69Ellt
POCOとか使ってるけど、あちこちのライブラリで
オレオレXML(DOM)、オレオレAutoPtr(スマートポインタ)、オレオレException
みたいなユーティリティクラスが満載なのはひどいよ
0036名前は開発中のものです。2014/01/21(火) 21:51:16.31ID:wLwEpkEc
オレの場合は俺オレデータ構造を使ってるが?
ツリー状のメモリー情報を簡単に記録でき、しかもフラグメンテーションを
起こさないスグレモノ
だったんだが、ちょいと重すぎた
0037名前は開発中のものです。2014/01/21(火) 22:20:38.42ID:/+yIHRaD
私はDXライブラリ使って今まで数本ゲームを作ってきたけど、「クラス? ポインタ? なにそれ」な組み方だった。
それが最近になってようやく「少しはわかったかな?」って感じになってきて、
俺俺ライブラリ……と呼べるほど立派なものじゃないけど、ゲームの土台を俺俺で作ってるところだから、
こういう行為を無意味とか言われるとちょっと辛いw
0038名前は開発中のものです。2014/01/21(火) 22:41:33.97ID:wLwEpkEc
無意味とは思えないけどな。
オレの場合、マルチスレッドのしっかりした使い方はマスター出来たし
データ構造も一般人には何を意味してるか分からないぐらいに複雑なモノを
扱えるようになったし、スクリプト言語も好きなように拡張出来るようになった。

ただ、肝心のゲームはまだ納得のいくものが出来てないわけだが・・・
0039名前は開発中のものです。2014/01/22(水) 00:21:13.24ID:qXFTHavY
マルチスレッドってどうやってスレッドセーフ?になるの?
具体的に教えて
0040名前は開発中のものです。2014/01/22(水) 00:45:51.85ID:FwnXEaYs
>>38
お勉強マシーンと揶揄されるパターンに嵌ってるな
俺も笑えない口だが、まあがんばれ

>>39
ロックしろ。使うのはクリティカルセクションだけで十分
0041名前は開発中のものです。2014/01/22(水) 00:52:28.97ID:1GoepMJH
>>34
UnityとかUREは個人で使う範囲なら無料ライセンスがある
まあロゴ出ちゃったりするけど
Unityは少しくらい儲けてもおkだったはず
0042名前は開発中のものです。2014/01/22(水) 05:31:21.08ID:MUoEPc44
志の低いクズはHSPでも使ってりゃ幸せになれるのに
0043名前は開発中のものです。2014/01/22(水) 07:22:25.22ID:OGkLlkIl
>>40
んー、頑張る

あとロックする方法に関しては、自分はミューテックスとイベント使ってるな
ちなみにセマフォは使ってない

>>39
マルチスレッド 同期でぐぐってみ?
あと、DirectXでマルチスレッドと相性の悪い命令があるから、それにも注意した方がいい
0044名前は開発中のものです。2014/01/22(水) 08:14:42.24ID:OGkLlkIl
ってゆーか、ちょっとぐぐってみたんだが分かりづらいページが多いなw
とりあえず、異なるスレッドが同じ変数にアクセスするとエラーになる場合がある事は理解してる?
0045名前は開発中のものです。2014/01/22(水) 08:25:54.82ID:AONvqNdW
「作れるけどめんどくさいから既製品でいいや」

「どうやって作るのかわかんないから既製品でいいや」
の間には絶対越えられない山脈が横たわる。

んで、一緒に既製品使ってたのにある日突然その山脈をヒョイっと越えてく人達がいるんだ。
0046名前は開発中のものです。2014/01/22(水) 16:00:09.27ID:4ljV+t0J
自分の書いたコードを別のプラットフォームに移植したり、
別のプロジェクトで再利用したりする機会が出てくると、
フリーのライブラリやミドルウェアを使ってるのが足かせになる場合が出てくる。
…ので、おれは自分で書けるものは自分で書くことにしてる。
0047名前は開発中のものです。2014/01/22(水) 19:55:47.76ID:FwnXEaYs
C++では悪しき車輪の再発明文化が染み付きやすいからな
JavaとかC#やらん人は一度体験したほうがいい
0048名前は開発中のものです。2014/01/22(水) 20:38:32.77ID:MuwJkdzb
マルチスレッドって理解してる人が少ないだけで実はそれほど対した技術じゃないよなw
Windows95の頃からある古い技術だし
0049名前は開発中のものです。2014/01/22(水) 21:25:45.67ID:wzTb147v
UNIX系に比べたらWindowsのマルチスレッドなんて遙かに新しい方だが、
いったいこの知ったかは何を言っているんだろう?
0050名前は開発中のものです。2014/01/22(水) 21:46:05.00ID:FwnXEaYs
話の焦点が分からないけど、windowsではクリティカルセクション以外
覚えることなにもないんじゃないの?

多重起動防止でミューテックス使うかもしれんけど、
マルチスレッドじゃなくてマルチプロセス?の話だし、
セマフォやイベントもまるで出番ないなぁ

そんなわけで結城のマルチスレッド・デザインパターン本の知識とか
ゲーム内で使わないし、ファイルIO、BGM、ネットワークくらいかな、
スレッドが関連してるのは
0051名前は開発中のものです。2014/01/22(水) 21:50:12.62ID:dtO4FDEt
レンダリングだろ今は。
0052名前は開発中のものです。2014/01/22(水) 21:54:50.35ID:y74k/mSd
まあマルチスレッドで面倒なのはデバッグだし
0053名前は開発中のものです。2014/01/22(水) 23:46:51.66ID:FwnXEaYs
特殊なゲームを除いて、ロジックのマルチスレッド化はやめたほうがいいね

OpenMPとかも保守性を落とすわりには、バッファコピーとかくだらない
並列化しかできないし、積極的にスレッド化してもリスクの方が多い

>>51
Direct3D10以降に出てきたマルチスレッド対応も
結局内部でクリティカルセクションやってるだけだろうから、
だったらswingみたいにシングルスレッドモデルやるほうが無難だと思う
0054名前は開発中のものです。2014/01/23(木) 00:01:05.67ID:9bErv8vs
マルチスレッドはねぇ…
低クロック動作省エネこそ正義の非力な組込システムとかなら
仕方なく中〜細粒度並列の形で書いたりもするけれど
ほら、パソコンってアメ車のマッスルカーじゃないですか

CPUリソース、余るんですよね。湯水の如く

なので>>50の言うように粗い粒度でなら取り入れるけど
ゲームの中核部、シミュレーション部については古式ゆかしい
シングルスレッド前提の簡潔なスタイルでラクチンです
0055名前は開発中のものです。2014/01/23(木) 00:58:45.53ID:XQzipMrB
前スレでゲームのメインフレーム部にマルチスレッドを使ってた奴がいたが、今日は来てないのか
あるいは他スレだったかな?
0056名前は開発中のものです。2014/01/23(木) 01:15:55.11ID:f/NLGL86
キャラクターの更新
背景・マップの更新
カメラの更新
これで3つスレッド使える
0057名前は開発中のものです。2014/01/23(木) 01:18:02.56ID:f/NLGL86
メインループと描画のスレッドってわけても意味なくね?

同じデータ参照しちゃいけないなら
一番負荷のかかるキャラクター周り計算が終わってから描画開始しないといけないじゃん
0058名前は開発中のものです。2014/01/23(木) 01:29:07.57ID:y0vYWKn+
描画は軽いけどロジック側がめっちゃ重い場合、
描画側の垂直同期で待つのを避けるためにデータの複製を更新したあとに
スレッド間でデータをコピーorスワップする方法はある
データ用のメモリを2倍も使ったり、対価となるコストも大きいがな

これは広大なマップをもつシムシティのような特殊なゲーム用だね
0059名前は開発中のものです。2014/01/23(木) 01:35:10.24ID:f/NLGL86
ん?広大なマップを持つゲームなら逆にメモリを2倍も使ったら大変なことになるんじゃないのか
0060名前は開発中のものです。2014/01/23(木) 02:21:59.68ID:s/ECi/gl
cpuを倍にするよりメモリを倍にする方が安くて現実的
0061名前は開発中のものです。2014/01/23(木) 02:43:04.45ID:s/ECi/gl
あとそこからもうひと工夫すると実際には+1%くらいで済むかもな
0062名前は開発中のものです。2014/01/23(木) 08:54:48.07ID:o//cFEYQ
マルチスレッドで処理速度を上げるにはダブルバッファリングしてメモリーを隔離して使う事が基本なの?
ややこしいな
0063名前は開発中のものです。2014/01/23(木) 09:00:18.56ID:WQKAVBet
マルチスレッドはCPUの待ち時間を減らして稼動効率を上げる事によって結果的に処理速度を上げるものだからな〜
できるだけセマフォ使う回数が減るようにしないと本末転倒だ。セマフォって本来は要らないモノだし。
0064名前は開発中のものです。2014/01/23(木) 09:37:12.46ID:o//cFEYQ
マルチコアであればマルチスレッドの恩恵は得られるんじゃないの?
0065名前は開発中のものです。2014/01/23(木) 09:44:44.32ID:8rbpDm/C
たとえば3Dモデルのフレームの行列計算を、
マルチスレッドで分散させて計算させるだけでも、
マルチコアの恩恵でかなり効果が出る。
モデルデータことにやれば、データのバッティングしないので管理も容易。

細分化して、親フレームからばらけた子フレームの計算を、
複数のコアに投げてもいいんだろうけど、さすがに面倒くさい。
0066名前は開発中のものです。2014/01/23(木) 09:59:16.39ID:C/RQiWS+
CPUキャッシュをだぶるばっふぁりんぐする技術マダー?
0067名前は開発中のものです。2014/01/23(木) 10:28:58.88ID:aF2XRTqq
>>66
Intel:「せっかく俺様が気を利かせて面倒を肩代わりしてやってんのに…
   最適化をご所望なら弊社謹製の開発ツール群をお買い求め下さい」
0068名前は開発中のものです。2014/01/23(木) 11:25:23.28ID:7+IY4GKU
こうやってどんどん必要スペックが上げられていくんだな……。
0069名前は開発中のものです。2014/01/23(木) 12:09:27.48ID:9AoVHus1
データ並列性さえあればOpenMPで簡単マルチスレッド使えるんだけどな
これ以外ではめんどくてマルチスレッドしないわ
0070名前は開発中のものです。2014/01/23(木) 13:18:55.33ID:8rbpDm/C
OpenMPなんて効果が出ないものを、未だに使っている人間がいることに驚いた。
0071名前は開発中のものです。2014/01/23(木) 14:01:36.18ID:sIh8uNuQ
検討項目を増やさずに問題解決するに越したことはないし、
作業を増やさずに問題解決するに越したことはないし、
コンピュータを使わずに問題解決するに越したことはないし、
プログラムを組まずに問題解決するに越したことはないし、
並列処理を使わずに問題解決するに越したことはない。

上司に嫌がらせしたいんだったら、↑の逆に向かう理論武装に日々怠らなければ良いwww
0072名前は開発中のものです。2014/01/23(木) 14:42:15.40ID:y0vYWKn+
OpenMPが普及しないのはそれなりに理由があるからなんだけど
最新技術みたいな中二ワードで本を売る業者に騙されていりこむ信者もいる

彼らは自分が他人より技術があると信仰している
他の連中は技術がないからOpenMP使えないんだ、ヤレヤレと信仰している
0073名前は開発中のものです。2014/01/23(木) 14:54:35.72ID:o//cFEYQ
実際に計測して確かめろとしか言えん
環境によっても変わるしな
0074名前は開発中のものです。2014/01/23(木) 18:57:57.85ID:B/J3zYBR
うちにあるメインマシンはシングルコアだ
0075名前は開発中のものです。2014/01/23(木) 19:35:48.55ID:XQzipMrB
>>72
計測する技術がないから使えないだけじゃね?
0076名前は開発中のものです。2014/01/23(木) 20:23:20.02ID:y0vYWKn+
OpenMPで小さなバッファのコピーが3倍早くなっても仕方ないわけでw
肝心な箇所のスレッド化は自前でやるんだから変なものは導入しないほうがマシ

Javaとか.Netランタイムは、何もしなくても勝手に
OpenMPでやるような単純なスレッド化ポイントを探して
やってくれるらしいから、そっちに期待したほうがまだ実りがあると思うよ

>>62
処理速度が目的ならあらゆる手段でロックを避けるのが基本
0077名前は開発中のものです。2014/01/23(木) 21:23:37.19ID:AhrZfxvI
http://dixq.net/forum/viewtopic.php?f=3&;t=14532
何でも掲示板が2ch並みの不毛さになってんだがwww
0078名前は開発中のものです。2014/01/23(木) 22:00:13.37ID:f/NLGL86
毎回毎回過去ログ見ない、何も考えない人の質問を謎の義務感があるのか答えさせられてるからな
俺も平穏な頃はお世話になったが代わりにそこの住人の心が荒れてしまった
0079名前は開発中のものです。2014/01/23(木) 22:13:04.53ID:Gy4H0ec+
MTフレームワークのように使えてる奴おるかー?
0080名前は開発中のものです。2014/01/23(木) 22:28:18.98ID:y0vYWKn+
>>77
技能がないではなく知能がないやつが沸くのは初心者系の宿命さ
0081名前は開発中のものです。2014/01/23(木) 22:41:55.18ID:AhrZfxvI
まあ確かに全ての質問の相手をしてたら荒むかもなー
初心者向けじゃ無くせばいいのにw
0082名前は開発中のものです。2014/01/24(金) 00:19:10.71ID:GEmYWJ47
なんでもかんでも馬鹿にするのは良くないよ
ここの住民はその傾向強いけど
0083名前は開発中のものです。2014/01/24(金) 01:13:55.26ID:Jcy2cywV
世の中に悪いものが溢れすぎているんだよ
バッドノウハウを叩き込む本も海外含めて出版されすぎ
パラノイアになるのもしかたあるまい
0084名前は開発中のものです。2014/01/24(金) 01:19:36.77ID:2quQhFog
横文字並べんな
俺にわかるように日本語で喋る
0085名前は開発中のものです。2014/01/24(金) 02:38:13.12ID:75+tl8UC
カタカナ語をやたらとチョイスするメンズはコミュニケーションがノーグッドなのがデフォルトだし
イージーなワードでトーク出来ない事がフーリッシュだとアンダスタンドしてないよね
0086名前は開発中のものです。2014/01/24(金) 04:50:34.13ID:pN9eWABR
カタカナ語はノットユーズだグッドルッキングガイども。
0087名前は開発中のものです。2014/01/24(金) 17:19:24.19ID:Jcy2cywV
初カキコ…ども…

俺みたいな中3でノンブロッキングI/Oしてる野郎、他に、いますかっていねーか、はは

今日のクラスの会話
Boostシリアライズかっこいい とか DXライブラリ とか
ま、それが普通ですわな

かたや俺はデバッグ用のコンソールでカーネル・ウップスを見て、呟くんすわ
it's a 深刻なエラー.狂ってる?それ、ランタイム・エグゼプションね。

好きなFW MTフレームワーク(カプコン社員でもないのに!)
尊敬する人間 ジョエル・スポルスキー(ユダヤ・ジョークはNO)
0088名前は開発中のものです。2014/01/24(金) 17:30:23.22ID:jYeepMxG
さすが中3だ
匿名掲示板で自分の事を勝手に語り始めた
自分が特別な存在であり、周囲より目立って当然であるという厨二病症状が伝わってくる

そんな貴方に対し、先輩として一つ、大人の現実を教えよう
ゲームを作りたければ、プログラミングだけじゃ駄目だ
プログラミングと絵を練習しなさい
音楽が得意なら音楽にも手を付けなさい
絵が描けないまま大人になれば、辿り付く先はゲーム会社のディレクターではなく、過労のIT豚小屋企業だ
さぁ、若者よ、時間が無いぞ
今日からpixivに通うんだ
0089名前は開発中のものです。2014/01/24(金) 17:59:26.14ID:Ak56Y4mX
他の板でやって。お願い
0090名前は開発中のものです。2014/01/24(金) 18:36:58.01ID:z3bTrILf
だが断る
0091名前は開発中のものです。2014/01/24(金) 18:57:08.80ID:8axgouAh
>>87
そこのクラスは構造体とかのクラスにはしないんだ
0092名前は開発中のものです。2014/01/24(金) 18:57:20.98ID:Jcy2cywV
>>88
おめーゲーム作れねーくせに、2chの受け売りで知ったかかましてんじゃねーぞゴラァ!
無能なくせに、先輩風吹かして上から目線の説教する哲学者気取りには反吐がでるぜ!!

http://anago.2ch.net/test/read.cgi/gline/1311577271/l50
0093名前は開発中のものです。2014/01/24(金) 19:00:30.40ID:Jcy2cywV
>>91
あー、見落としたわ
0094名前は開発中のものです。2014/01/25(土) 04:15:46.46ID:8r1nXkC0
>>88
絵って・・・同人じゃないんだから専門の絵描きさんにお願いするだろ普通
0095名前は開発中のものです。2014/01/25(土) 16:31:59.91ID:jy8SNfJb
大手ゲームメーカー管理職の妄想にとりつかれたゲーム爺(無職)
あっちで引き取ってもらおう

ニート、無職、フリーターがゲームを作るスレ6
http://toro.2ch.net/test/read.cgi/gamedev/1389441602/
0096名前は開発中のものです。2014/01/25(土) 20:03:22.14ID:ErNorzVO
勘弁してください
0097名前は開発中のものです。2014/01/25(土) 22:16:45.80ID:ykCYICO9
http://codepad.org/XE9hLg41
これってもしかしてListにAddされたあと
スコープ抜けて寿命付きてListの中なにも残ってなかったりする?
0098名前は開発中のものです。2014/01/25(土) 23:11:32.82ID:jy8SNfJb
いんや。vectorにaddされるのはローカル変数SCache Cache自体ではなく、
vector内でnew SCache()されたものであり、aiueo()ローカル変数SCache Cacheが
新しく生成されたインスタンスに対してコピーコンストラクタでコピーされるはず

だからたぶんコピーコンストラクタをprivateで定義しておくとコンパイルが通らないはずだ
SCache::SCache(const &copy){}

一応自分で確認してくれ
0099名前は開発中のものです。2014/01/25(土) 23:12:47.19ID:jy8SNfJb
訂正
SCache::SCache(const SCache &copy){}
0100名前は開発中のものです。2014/01/26(日) 00:11:58.97ID:Iw5/1QMx
うーん、、特にコピーコンストラクタは触ってないんだけどなぁ
ありがとうございました
0101名前は開発中のものです。2014/01/26(日) 00:17:49.78ID:wqDtdTDr
なぜかvectorサイズが0になってるとか、
例外ダイアログでvectorほにゃらら〜がでるとか、それ系なん?
0102名前は開発中のものです。2014/01/26(日) 00:28:30.05ID:wqDtdTDr
俺は前にこれでやらかしたことがあるぜ
vectorの内部バッファが大きくなるとポインタが無効になる

std:: vector<Hoge> list;

Hoge* add(Hoge &obj)
{
list += obj;
Hoge* last = &list[ list.size()-1 ];
return last;
}
0103名前は開発中のものです。2014/01/26(日) 08:53:27.52ID:Iw5/1QMx
>>102
2000個ぐらいなんだけど、多い?
0104名前は開発中のものです。2014/01/26(日) 09:28:31.24ID:+p1FZWAS
vectorは内部バッファの領域拡張が発生した時にその領域を指してるポインタは無効になるよってこと
だから要素数がいくつだったらって話じゃないよ
0105名前は開発中のものです。2014/01/26(日) 09:48:24.53ID:f2NeeHoK
vectorの領域拡張はフラグメンテーションが起きやすいよね
0106名前は開発中のものです。2014/01/26(日) 12:46:34.63ID:WQN234w5
何でそのへんの仕組み理解してないのにわざわざ生ポ使うんだよ!
0107名前は開発中のものです。2014/01/26(日) 15:37:26.70ID:1jTIwhcQ
>>105
瑣末
0108名前は開発中のものです。2014/01/26(日) 16:41:16.86ID:RpTDvif5
>>105
STLコンテナにアロケータ設定できるのも知らんのか?
そもそもメモリコンパクションがどうとかいう話は
GC系言語ですらとっくに切り捨てた昔話だと思うが
0109名前は開発中のものです。2014/01/26(日) 17:41:28.90ID:f2NeeHoK
>>108
アローケーター操作するの面倒じゃね?
ある程度大きめにメモリーを取得しといて使い回す方が楽っぽいが
0110名前は開発中のものです。2014/01/26(日) 17:56:52.23ID:RpTDvif5
要は固定サイズの配列だろ?
好きなようにやればいいさ
0111名前は開発中のものです。2014/01/26(日) 18:42:00.91ID:f2NeeHoK
いや可変サイズだが
あらかじめ取得しといた容量よりも大きなサイズが必要になったら倍のサイズに領域を拡張してる
0112名前は開発中のものです。2014/01/26(日) 18:47:27.36ID:f2NeeHoK
>>108
つーか>>102の場合はvectorよりもlist使った方が良くないかい?
0113名前は開発中のものです。2014/01/26(日) 18:52:43.37ID:y8TPPY9Q
一見listの方が速そうに思えるんだけど、
実際ベンチマークを取るとvectorの方が速いことが多いので侮れない。
0114名前は開発中のものです。2014/01/26(日) 18:59:37.83ID:f2NeeHoK
いや速度よりもフラグメンテーションでアプリが跳ぶ事を気にしてるんだが
0115名前は開発中のものです。2014/01/26(日) 19:20:58.79ID:1jTIwhcQ
>>109
>>114
やっぱり瑣末かと。換言すれば、取るに足らない、微レ存、取越苦労、枝葉、の話かと。
いや違う考慮に値するというなら問題が再現可能な状況を示してみればいいのでは。
異常な頻度で確保/再割当/解放を繰り返すような無理な状況設定が必要になるけど。
件の話なら適切にreserve使えばいいかと。それで解決しない問題ってあるかな?
0116名前は開発中のものです。2014/01/26(日) 19:22:33.48ID:1jTIwhcQ
補足
ヒープ割当はフラグメンテーション回避で独自のメモリプールをーとかこの手の
取らぬ狸の皮算用になりがちな話題は何度目かというくらい既視感があったので
過去発言を適当に検索。関連ありそうなので貼り

> PCの場合、例えば平凡なDoug Lea Malloc(の亜種)を使うことについて
> 処理速度上の問題で難癖を付けるには、意図的に相当に意地悪な(過酷な)状況設定を
> 引っ張ってくる必要があると思うなぁ

> 例えば3D視点のゲームで、視覚効果に使う粒子状の短命オブジェクトが盛り盛り
> 無数に画面上に散りばめられてて、それらが何と一粒一粒馬鹿正直にヒープから
> メモリ割り当てされてて何の工夫もない線形リストに挿入されてて、毎フレーム
> 線形リストを馬鹿正直に巡回して一粒一粒更新したり削除即時解放したりとか

(この状況設定がなぜ意地悪かというと)

> 描画関数に渡すパーティクル用のデータ構造と明らかに違う状態だから

(不必要な)

> セットアップもあるしね。まぁ、いずれにせよ、何でそんな馬鹿な
> 想定を持ち出すんだと閉口するような話に持っていかないと処理速度上の
> 問題で横槍いれるのは難しいと思う
0117名前は開発中のものです。2014/01/26(日) 19:24:03.74ID:y8TPPY9Q
>>114
オレオレ用語じゃ意味が分からん。
おそらくその現象は君の脳内世界でしか発生しない。
0118名前は開発中のものです。2014/01/26(日) 19:43:21.57ID:f2NeeHoK
>>117
1jTIwhcQには意味が通じてるぞ?w
>>115
いや、そこまで分かってるなら特に問題は無い……な
ただ、ゲームの場合、ムチャなメモリーの使い方する事が多いから、
reserveを忘れる事も珍しくないのでは?と思ったんだが

まあ、些末な問題と言えば些末な問題か
0119名前は開発中のものです。2014/01/26(日) 20:01:52.93ID:NBq5fzCq
無能がしったかかまして大恥をかきましたってさ
0120名前は開発中のものです。2014/01/26(日) 20:31:03.96ID:q4s5e5oc
つまりどういうこと?
初期化したときに必要な分確保しとけってことでいいの?
0121名前は開発中のものです。2014/01/26(日) 20:59:04.35ID:RpTDvif5
アホの戯言を相手にせず、普通にSTLを使いましょうってこと
0122名前は開発中のものです。2014/01/26(日) 21:10:15.17ID:RpTDvif5
std::vector<T>のTが構造体かクラスであるとき、内部バッファのリサイズに際して
コピーコンストラクタのコストが多数生じること、またコピーコンストラクタにおける
コピーの実装に関する適切さ(シャローコピー・ディープコピー)といった面倒が生じる
リスクを考慮すると、ポインタ型にすることを心がけた方が良いってのはあるかな

もちろん、プリミティブ型に関してはなんの心配も必要ない
0123名前は開発中のものです。2014/01/26(日) 21:16:08.13ID:f2NeeHoK
あれ?ポインタが領域拡張で無効になるケースの解決にはならないような……
容量を十分確保しておけば、無効になりにくいだけで
0124名前は開発中のものです。2014/01/26(日) 21:59:47.79ID:f2NeeHoK
>>120
必要な分が分かってる場合はそれでいい
分かってない場合はポインタを取得し直す必要がある。
■ このスレッドは過去ログ倉庫に格納されています