C++相談室 part166 (574レス)
上下前次1-新
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1: sage (ワッチョイ 8732-NXaD) [] 2025/04/26(土) 10:34:58.41 ID:pbPDl6lv0(1/2) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part165
2chスレ:tech VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
550: デフォルトの名無しさん (ワッチョイ f7c2-z8QQ) [sage] 2025/07/12(土) 17:03:35.88 ID:BGsI/m1X0(1) AAS
>>548548(1): デフォルトの名無しさん (ワッチョイ 1fb7-p46g) [] 2025/07/12(土) 13:34:42.02 ID:Y1veRsrW0(1) AAS
C++でデフォルトコンストラクタで確保したリソースだけデストラクタで破棄したくてコピーコンストラクタやコピー代入ムーブコンストラクタやムーブ代入で得たリソースはデストラクタで破棄させたくないときどうする?
rustみたいな所有権システム必要になるんですか?
俺もなんでそんなことが必要なのかわからないけど、pip使ってデフォルトコントラスタのオーナーだけにshared ptrでリソース管理させるとか?
これだとバグが怖いから、素直にshared ptrでリソースを共有したほうがいい気がする。
551: デフォルトの名無しさん (ワッチョイ 9f02-cEtd) [sage] 2025/07/12(土) 17:24:13.44 ID:1YAX70Df0(1) AAS
ゲームプログラムをマルチスレッドにするとき、何をマルチスレッドにするの?
ストレージのロードとかはともかく
552: デフォルトの名無しさん (アウアウウー Sa9b-zcFv) [] 2025/07/12(土) 18:45:10.30 ID:/RtKayKia(1) AAS
マルチスレッドにしたいものをマルチスレッドにする
553: デフォルトの名無しさん (ワッチョイ f7bd-eG3U) [] 2025/07/12(土) 19:12:52.47 ID:LUVzIFWA0(1) AAS
遠景のテクスチャのロードなんかは別スレッドかな?
当たり判定などのロジックは遅延なく1フレーム16ミリ秒以内にやらなきゃいけないのでメインスレッドでやるしかない
ゲームでマルチスレッド使うのって難しいよね
554(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 3732-SsbA) [sage] 2025/07/12(土) 20:02:23.86 ID:5KyGwfre0(1) AAS
排他処理が入ると並列化の恩恵がだいぶん減るので高速化の意図でマルチスレッドを使うなら排他が不要な部分を見つけるのが第一だね。
メモリなどの各種のリソース管理の後始末を別スレッドに任せるという例も聞いたことはある。
デストラクタが起動するとサブオブジェクトのデストラクタも連鎖的に起動するからワンフレームの時間が限られている状況では間に合わないということも起こる。
だからデストラクタは後始末が必要なリソースをテーブルに登録するだけにして、別スレッドが実際の後始末をするってことね。
もう使うことの無いリソースだというのは分かってるから排他は少なくてすむ。
(ヒープメモリの管理テーブルはスレッド共通だから排他がゼロとはいかないと思うけど。)
後始末が少しくらい遅れてもどうということはないし。
555: デフォルトの名無しさん (ワッチョイ e202-oEHq) [sage] 2025/07/13(日) 11:30:27.40 ID:WDtYO/xJ0(1/2) AAS
まあ、
アクションとか以外の、1/60秒で同期させなくていい処理ですかね…
遠くのPhysXの物理とかもできるのかな…
数年ぶりで、レイトレーシングとか未経験だわ…
556: デフォルトの名無しさん (ワッチョイ e202-oEHq) [sage] 2025/07/13(日) 11:36:28.87 ID:WDtYO/xJ0(2/2) AAS
>>554
コンテキストスイッチとか気にしないといけないですね…
PlaystationとXboxとPCゲームで、それぞれに最適化とか大変そうですね…
557: デフォルトの名無しさん (ワッチョイ cecd-YjA1) [] 2025/07/13(日) 21:38:10.94 ID:e/4c/Agi0(1) AAS
・人間は犯罪を起こす種族と言い切っている
地球はすでに丸見え、レーダー電波で宇宙人に居場所をさらしている
公開: 2025-07-13 21:00
外部リンク[html]:karapaia.com
>>明らかに人工的なもので、200光年以内にある知的文明なら、地球の場所を把握できる可能性が高い。
>>アレシボ天文台のような超高感度の望遠鏡を使えば、理論上は6万光年先からでも地球の電波を検出できるとされている。
>>に宇宙空間で“丸見え”の状態にあり、その状況は75年前から続いているのだ。問題は、彼らが友好的な文明であるという保証がまったくないことだ。
★>>可能性としては、(我々人間のように)きわめて敵対的かつ侵略的な種族であるケースも十分にあり得る。
558: デフォルトの名無しさん (ワッチョイ ce59-YjA1) [] 2025/07/14(月) 12:26:06.28 ID:D5VD7WG/0(1) AAS
GPT-4.1超えの中国製AIモデル「Kimi K2」が無料公開される、複数のテストでGPT-4.1やClaude 4 Opusを打ち負かしエージェントタスクもこなす
2025年07月14日 11時10分
外部リンク:gigazine.net
>>Kimi K2はベースモデルの「Kimi-K2-Base」と事後学習済みモデルの「Kimi-K2-Instruct」の2種類に分かれてリリースされています。以下の図は「Kimi-K2-Instruct」「DeepSeek V3」「Qwen3-235B」「GPT-4.1」「Claude 4 Opus」「Claude 4 Sonnet」「Gemini 2.5 Flash」のベンチマークスコアを並べたものです。Kimi-K2-InstructはすべてのテストでオープンモデルのDeepSeel V3とQwen3-235Bを超えるスコアを記録し、一部のテストでGPT-4.1やClaude Sonnet 4などの商用モデルに勝利しています。
◇上記サイト内にダウンロードリンクがある
559: デフォルトの名無しさん (ワッチョイ a9d9-jjSx) [sage] 2025/07/14(月) 14:37:25.45 ID:4jx6FCSc0(1) AAS
>>540お前ゲーム作ったこと無いやろ・・・
560: デフォルトの名無しさん (ワッチョイ 370b-VyTm) [sage] 2025/07/14(月) 16:00:51.76 ID:sJl0ASyp0(1) AAS
ただエンプティ言いたいだけ違うんかと
561(4): デフォルトの名無しさん (ワッチョイ 915f-YjA1) [sage] 2025/07/14(月) 16:18:22.23 ID:CQ+aGKeG0(1/5) AAS
画面描画FPS(frames per second)を固定させる為に、以下の待ち処理を入れるとFPSがメッチャ安定する:
while (system_clock::now() < t_after_sleeping) {
Sleep(0);
}
しかし強制フリーズさせてるみたいで、ハード痛めたりしないか不安なんだが。どうなん実際の所?詳しい人教えて
562: デフォルトの名無しさん (ワッチョイ 30a6-4yYS) [sage] 2025/07/14(月) 16:27:01.51 ID:NLDJkZue0(1) AAS
マルチスレッドのセオリーとしてはSleepせずにビジーループするほうが問題
なんだけど、Sleepだと精度悪すぎてちゃんとFPS担保できるのか心配にはなる。動いてるならそれでいいけど
563(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ bd32-2YuX) [sage] 2025/07/14(月) 17:49:12.87 ID:23SHNwVj0(1) AAS
>>561
定石と言えるレベルの普通の処理だよ。
既に指摘されているようにタイマーの精度の問題はあるので工夫を入れる必要はあるけど、
精度が悪くても処理が遅れる (想定より FPS が下がる) 可能性があるだけ。
どういう理屈で不安に思っているのかがよくわからないので何を間違っているのか説明できない。
Sleep(0) が何をやってるかわからない (これが何らかの危険な処理だと思っている) ってこと?
564: デフォルトの名無しさん (ワッチョイ 915f-YjA1) [sage] 2025/07/14(月) 20:03:36.26 ID:CQ+aGKeG0(2/5) AAS
test
565: デフォルトの名無しさん (ワッチョイ 915f-YjA1) [sage] 2025/07/14(月) 20:04:22.78 ID:CQ+aGKeG0(3/5) AAS
>>563
ありがとう。Sleep(0)が何をやっているかはわかっている
566: デフォルトの名無しさん (ワッチョイ 915f-YjA1) [sage] 2025/07/14(月) 20:05:51.19 ID:CQ+aGKeG0(4/5) AAS
>>561のwhile中を空にする(Sleep(0)しない) > while中でSleep(0)する > while中でSleep(1)する(時間単位を1msにして待ち時間を1ms縮める)
という具合にCPU占有率が上がる。精度は落ちるがSleep(1)を入れた方がCPUの負荷は減るので、何となく安心する。
567: デフォルトの名無しさん (ワッチョイ 915f-YjA1) [sage] 2025/07/14(月) 20:06:23.37 ID:CQ+aGKeG0(5/5) AAS
>>561のwhileの中でSleep(0)しつつ準ビジー状態を強行するのがどれだけハードに悪影響なのか、その辺りの実績経験を盗みかった。卑しい盗人を助けてくれ下さい
568: デフォルトの名無しさん (ワッチョイ 7001-jjSx) [sage] 2025/07/15(火) 00:13:36.01 ID:KEPxDdxR0(1) AAS
C++スレ的にはthis_thread::yieldかと思ったんだが
569: デフォルトの名無しさん (ワッチョイ 6268-3HIJ) [sage] 2025/07/15(火) 04:24:49.25 ID:4J45BJq00(1) AAS
>>561
グラフィックのAPIは何使ってる?
何と比べて安定したのかしらんけどそのやり方でディスプレイの出力と同期できるわけないのわかる?
570: デフォルトの名無しさん (ワッチョイ cda1-2ooF) [sage] 2025/08/04(月) 06:40:16.41 ID:0gfRmGh70(1/3) AAS
ちょっ質問なのですが
unsigned long m_ulAbortReasonBmp;
std::mutex m_mutex;
std::atomic<unsigned long> m_ulBias;
に対し、
m_mutex.lock();
m_ulAbortReasonBmp |= fooBmp; // (1) : m_mutex.lock()期間内
m_mutex.unlock();
m_ulBias.store(barVal, std::memory_order_release); // (2) : m_mutex.lock()期間外だがm_mutex.lock()期間の後
としたとき、
Q1. m_mutex.lock()している他スレッドから見て(1)、(2)の操作の順序(m_ulAbortReasonBmpが変化した後、m_ulBiasが変化する)は保証される?
Q2. m_mutex.lock()していない他スレッドから見てんも(1)、(2)の操作の順序(m_ulAbortReasonBmpが変化した後、m_ulBiasが変化する)は保証される?
571: デフォルトの名無しさん (ワッチョイ cda1-2ooF) [sage] 2025/08/04(月) 07:34:20.02 ID:0gfRmGh70(2/3) AAS
Q1については、他スレッドから見てm_ulBiasのreadが
m_mutex.lock()期間(クリティカルセクション)内のm_ulAbortReasonBmpへの書き込みより
先行するようなことが起きるとクリティカルセクションの意味が消失するから保証される
Q2についてはm_ulBiasのreadがプロセッサコアにどう計画されるかわからないから
m_ulAbortReasonBmpへの書き込みの後になることは一般に保証されない、
が、現在人類が手にしているクリティカルセクションの実装(lock期間に入るときと出るときそれぞれで
いかなるreadもwriteも無差別にバリアする)により、lockしないスレッドから見ても順序が実質的に保証される、
でおk?
572(1): デフォルトの名無しさん (ワッチョイ cda1-2ooF) [sage] 2025/08/04(月) 08:33:59.43 ID:0gfRmGh70(3/3) AAS
訂正orz、
Q2のケースでは保証されない
現在人類が手にしているクリティカルセクションの実装(lock期間に入るときと出るときそれぞれで
いかなるreadもwriteも無差別にバリアする)のが真実だとしても、
それはm_ulAbortReasonBmpやm_ulBiasをwriteする側のスレッドがwrite順を守るというだけで、
m_ulAbortReasonBmpやm_ulBiasをreadする側のスレッドにはメモリバリアするコードが無いから
read順を好きに計画され、writeした順でreadされる保証が無い
573: デフォルトの名無しさん (ワッチョイ 5f79-1HMX) [sage] 2025/08/04(月) 08:41:31.47 ID:3rv0HXUI0(1) AAS
>ちょっ
かわいい
…舐めてんの?
574: デフォルトの名無しさん (ワッチョイ e3b9-Psuq) [sage] 2025/08/04(月) 16:26:39.26 ID:Tt4A7oMm0(1) AAS
>>572
コードに無いreadの話が入ってくるのが意味がわからない
聞きたいことはwriteの順番が保証されるかではないのか?
writeの順番は保証される
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s