- C++相談室 part117 [転載禁止]©2ch.net
386 :デフォルトの名無しさん[sage]:2015/06/14(日) 01:25:15.44 ID:WgPnxzZM - >>382
>分野によってはmalloc()の使用すら悪設計と看做される プールからの割当ならカスタムアロケータで十分だろ というか一般にnew実装でmalloc使ってる事多いのに意味不明
|
- C++相談室 part117 [転載禁止]©2ch.net
387 :デフォルトの名無しさん[sage]:2015/06/14(日) 01:33:46.50 ID:WgPnxzZM - そもそも組み込みのnewをNULLチェックするような分野では
例外/rtti入ってるstlなぞ組み込みでは使わんぞ メモリプールを使うなら上述の通り stlで駄目な子はiostreamぐらいだろうに
|
- C++相談室 part117 [転載禁止]©2ch.net
394 :デフォルトの名無しさん[sage]:2015/06/14(日) 03:09:20.91 ID:WgPnxzZM - >>388
>メモリはあらかじめ大きさを設計した固定長の配列を使うのですよ だからそれをプールからの割当という >>389 確かにそこは語弊が合ったな 「標準ライブラリで駄目なのは」だ
|
- C++相談室 part117 [転載禁止]©2ch.net
397 :デフォルトの名無しさん[sage]:2015/06/14(日) 03:17:21.08 ID:WgPnxzZM - >>392 >>393
あのなあ…プールから割当する場合は、足りなくなったら一番古いのを開放するんだよ 固定長はそういうデータ構造でえしか使わない、というか使えない ゲームなどの場合は速度的にプール使うが、確保回数減らすだけで固定長じゃない 組み込みと違ってシステムコールのコストを削る目的だからな
|
- C++相談室 part117 [転載禁止]©2ch.net
398 :デフォルトの名無しさん[sage]:2015/06/14(日) 03:19:10.90 ID:WgPnxzZM - >>396
そこのどこに自作コンテナな要素があるのだ つかそれもうC++じゃなくてCだろ
|
- C++相談室 part117 [転載禁止]©2ch.net
399 :デフォルトの名無しさん[sage]:2015/06/14(日) 03:27:27.12 ID:WgPnxzZM - もしかして組み込みは固定で確保!
volatile指定で特定アドレスにIO書き込むんだ!とかの話だったの? てっきりコンテナの話だと思ってたんだが…
|
- C++相談室 part117 [転載禁止]©2ch.net
401 :デフォルトの名無しさん[sage]:2015/06/14(日) 04:26:41.70 ID:WgPnxzZM - というか話の流れ以前によく読むと>>392おかしい?
まあもう良いか
|
- C++相談室 part117 [転載禁止]©2ch.net
407 :デフォルトの名無しさん[sage]:2015/06/14(日) 12:29:48.84 ID:WgPnxzZM - >>402
・マルチスレッドなんてリッチなOSで配列直接割当とか意味不明 ・そもそもキューは呼び出し側も書き込みする=まず破綻してる ・その上で競合どう解決すんの? >極限まで推し進めれば例外としてはキューだけが残るが >キューに入れたが出し忘れるとかはさすがにコードを見ればわかるのでは… キューをコードだけ見て消費がわかるとか意味不明 明らかにプログラミングしたこと無いだろ そんな奴がなんで人に喧嘩売れるんだか 本当理解不能
|
- C++相談室 part117 [転載禁止]©2ch.net
408 :デフォルトの名無しさん[sage]:2015/06/14(日) 12:37:00.30 ID:WgPnxzZM - >>407
訂正 ・そもそもキューは読み出し側も書き込みする カーネル側のメモリは潤沢に使えると言うならまあ通るが それだと元のシンプルさなんて全然無い上に ユーザーランドのプログラムだけ低レベルとか相当に変な制限だ という事で、マルチスレッドでcasも使えないqueueを セマフォ+大量のスレッドスタック(タスク)退避領域など 結構な量の余分なメモリ領域無しにどう解決すんのか聞いてみたいね
|
- C++相談室 part117 [転載禁止]©2ch.net
409 :デフォルトの名無しさん[sage]:2015/06/14(日) 12:45:04.25 ID:WgPnxzZM - ちなみにcasが使えない理由は書き込み領域が固定だから
別にqueue構造にcasが使えないわけじゃないからね
|
- C++相談室 part117 [転載禁止]©2ch.net
411 :デフォルトの名無しさん[sage]:2015/06/14(日) 13:07:22.92 ID:WgPnxzZM - >>410
>スレッドごとの記憶をスレッドローカルにすれば >スレッドごとの競合は考えなくとも良いし、これは配列で実現できる >キューの読み書きは読む側と書く側で当然排他制御する >これはSTLのコンテナを使おうがなんだろうが、マルチスレッド想定では避けられないから漏れの主張とは独立だから漏れのへの批判としては筋違い 「配列で実現できる」は配列にする理由にならない 発想の転換力って何?君てんかん持ちなの?
|
- C++相談室 part117 [転載禁止]©2ch.net
413 :デフォルトの名無しさん[sage]:2015/06/14(日) 13:14:12.33 ID:WgPnxzZM - もう一度丁寧に書くけど
スレッドローカル(笑)まで面倒見てくれる所じゃ そう言うプログラムじゃIO即値の処理すらインライン関数化してるし 並列処理ならデータ構造いるよね 固定配列いちいち使う理由ってマジで何? この期に及んでコストとでも言うつもり?
|
- C++相談室 part117 [転載禁止]©2ch.net
415 :デフォルトの名無しさん[sage]:2015/06/14(日) 13:18:23.28 ID:WgPnxzZM - >>414
あのさ言い訳してる所悪いけど、 それ「そんな環境無い」って認めてるようなもんだよね 酒でも飲んで適当言って失敗したって一言言えばそれでいいのに 言い訳するせいでどんどん墓穴掘ってないか
|
- C++相談室 part117 [転載禁止]©2ch.net
419 :デフォルトの名無しさん[sage]:2015/06/14(日) 13:24:43.68 ID:WgPnxzZM - スレッドローカル前提でコンテキストスイッチ時の
キャッシュミスの話とかもう意味不明すぎるだろ… だから何が目的で固定にするんだよ 知ってる単語並べてるだけじゃないか
|
- C++相談室 part117 [転載禁止]©2ch.net
420 :デフォルトの名無しさん[sage]:2015/06/14(日) 13:25:23.67 ID:WgPnxzZM - >>418
いや本当それまさにブーメランってやつだから 痛々しすぎるよ君
|
- C++相談室 part117 [転載禁止]©2ch.net
429 :デフォルトの名無しさん[sage]:2015/06/14(日) 13:52:04.70 ID:WgPnxzZM - >>423
君が言いたいのは元々malloc不要論だろうに なぜか飛躍して、配列固定で自分で話進めて それじゃ何もできないと知ってOS側でスレッド管理、排他処理から始まって ついにスレッドローカル(普通は動的割当)の導入まで来たもんだ 君の言う実現可能性って「固定配列触れば実現」って程度なの、わかるかな?
|
- C++相談室 part117 [転載禁止]©2ch.net
432 :デフォルトの名無しさん[sage]:2015/06/14(日) 14:19:28.79 ID:WgPnxzZM - >>430
>排他制御については>>407が言い出したことだが、 >OS側でスレッド管理というのは最初からの想定として良い(漏れ(ら)はそこのメカニズムまで変える話はしていない スレッドはまあいいよ、前提だから >排他制御については>>407が言い出したことだが、これも同様で、漏れ(ら)はそこのメカニズムまで変える話はしていない いやその言い訳は無理でしょ、君がキュー可能と言い出したんだし というかOS側セマフォ使うなんて完全にリソースの動的割り当てだし スレッドローカルもこちらからは動的、カーネル側が静的実装かは関係ないよ 自分で実装したらただのグローバル 取り繕っても、話を進める度に不利な状況を自分で作り出してるんだよ いい加減大した意味がないと認めたら?
|
- C++相談室 part117 [転載禁止]©2ch.net
435 :デフォルトの名無しさん[sage]:2015/06/14(日) 16:06:11.74 ID:WgPnxzZM - >>433
>ただ>>391の言うとおり、メモリをやりくりする必要性があり、リークし得るというのは当てはまるから、 >>>392でリークを起こす危険性に言及し、回答もした いやまさか >リークを起こす危険性に言及し、回答もした =バグ無くなる云々などの元の提起が破綻してる事を認めてる とは思わなかったぞ…それで何でまだ実現可能って主張してるの? そもそも普通のキュー認めたら使用領域が動的に上下してる時点で 動的データ構造使ってるし、元のコンテナ使う話に対して全く反論できてない これはもういちいち説明しなくていいよね? 俺が予想してたのは、チャンネル待ってデータ受け渡しとか 代替機構の反論だったんだけどなあ… >という前提を表明しているから、いまさら「OSの内部で動的確保している(かもしれない)から藻前の論理は成立しない」というのは そんな話はしていないよ 他の動的なリソースの取得開放はなぜ問題にしないと言ってるだけで
|
- C++相談室 part117 [転載禁止]©2ch.net
436 :デフォルトの名無しさん[sage]:2015/06/14(日) 16:16:46.65 ID:WgPnxzZM - >>434
>スレッドローカルな記憶として機能を果たす(実現可能ではある)ことは>>411には合意いただいたはずだが >つまりグローバルかどうかはあんま論点じゃないっていうか、 いやいや、スレッドローカルと言った時点で、OS実装からの改善なんでしょ? コストを気にするような話もしてたが、そんなオーバーヘッド気にするなら、 最初からコンテキストスイッチによるキャッシュミス自体抑制する アドレスだけが重要で、静的な固定配列は無関係 それもわかってるというなら、本当何が言いたいのか意味不明だよ君は いい加減固定配列の有用性主張する意味ないと認めろって
|
- C++相談室 part117 [転載禁止]©2ch.net
437 :デフォルトの名無しさん[sage]:2015/06/14(日) 16:19:05.08 ID:WgPnxzZM - ランタイムかOSかの違いとかの蛇足は無しでね
|