[過去ログ] C++相談室 part164 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
216(1): (ワッチョイ 01c9-6bUV) 2023/06/16(金)12:08 ID:nWXjt7Za0(1) AAS
capacityと OS側からみた空きメモリはまた別かもしれんわけで
アロケーターがOSからじかに要求してる場合もあれば
OSへの要求回数を減らして内部でプールしてやりくりしてるのもあるし
制御したいレイヤーによっては全部自前でやるしかない という落ちにも
217: (ワッチョイ c14e-8sUu) 2023/06/16(金)12:26 ID:B2wRJ7jC0(1) AAS
>>215
まぁ、細かい単位のメモリだったら、実際に開放されているかどうかなんて、ほとんど動作に影響しないとも言えるしね
(未初期化変数の不具合が発覚しづらい、くらいか)
とりあえずshrink_to_fitを呼んでおいて、細かいことは気にしないのが一番かもしれないw
218: (ワッチョイ 934f-q0yD) 2023/06/16(金)12:46 ID:H6XPX5qB0(1) AAS
「STLコンテナ以外にも」という文言が読めてない文盲さんたちがvectorの話ばっかしててワロ
219: (ワッチョイ d969-2rqm) 2023/06/16(金)15:41 ID:KX+TErXo0(1) AAS
「STLコンテナ以外にも」はSTLコンテナも含むということ
STLコンテナの話をしても何もおかしくない
220: (アウアウウー Sadd-g1CP) 2023/06/16(金)15:43 ID:ly+Q1cW8a(1) AAS
いつものことだが
ほんの最初の数レスで終わってるのに
どうでも良い脱線ほど盛り上がってgdgdレスでスレが延びる
221: (アウアウウー Sadd-Xx8j) 2023/06/16(金)15:46 ID:/DJegtL/a(1) AAS
ほんそれ
回答終了してんのにちんこかゆい
222: (スフッ Sd33-pDI4) 2023/06/16(金)15:49 ID:YNpYq5+wd(1) AAS
>>182 良く読むと
>STL コンテナ以外にも、大きいメモリが割り当てられてるオブジェクトを使用後に破棄したいというケースがよくあります。
>最も簡単なやり方は関数とか局所的なスコープとして切り出すことかと思いますが
いやいやそもそも「関数とか局所的なスコープ(つまりautoだろ?stackだろ?)で大きいメモリ確保しようなんて思うな」って話なんだよな
223(2): (ワッチョイ e95f-2rqm) 2023/06/16(金)16:09 ID:qgM8i0iT0(1) AAS
ローカルなvectorを置けばヒープ確保されるので「つまりautoだろ?stackだろ?」は
また何か誤解してる人が来たなとしか。
224(1): (ワッチョイ 219b-q0yD) 2023/06/16(金)16:49 ID:ybGonaVE0(1) AAS
reset要らないとか言ってる奴らは結局何なん
225(1): (テテンテンテン MMeb-jufV) 2023/06/16(金)19:32 ID:yx9ngvFiM(1) AAS
>>224
結論は>211にまとめといた。
resetは要らん。
226(1): (ワッチョイ 92dc-gfWY) 2023/06/17(土)08:56 ID:3MnK6eEg0(1) AAS
>>223
「STLコンテナ以外にも」という文言が読めてない文盲さんたちがvectorの話ばっかしててωωω
227(1): (テテンテンテン MM96-Axrn) 2023/06/17(土)10:36 ID:koF9X0k9M(1) AAS
>>226
「大きいメモリが割り当てられてるオブジェクトを使用後に破棄したい」なら
>185か>187。
>187はunique ptrの置き場所と解放タイミングによって解放の仕方が違って、自動変数にして関数やスコープから抜けるタイミングで解放するなら手動操作不要、vectorなどのヒープに置くとかスコープの終わり前に解放したいとかならreset()とかvectorの要素削除とかで手動解放。
いずれにしても、自動変数に巨大インスタンスを考え無しに置くのは悪手で、そのオブジェクトがスタックに巨大データを置かない(ヒープ等に置く)ことを確認してからにしたほうがいい。
228: (ワッチョイ 6128-l8k0) 2023/06/17(土)15:30 ID:S+64vkUJ0(1/4) AAS
>>216
vectorのcapacityはそのvectorが氏ぬかcapacity縮小アクションが生じない限りvector固有に占有されるから
capacity(のうちsize()を超える分)と OS側からみた空きメモリはまた別でケテーイ……
一方malloc()がOSからゲットしたメモリをOSに返さずにいるのはOS側からみた空きメモリではないにしろ
同一プロセス内の他のオブジェクトの構築に使えるのだから空きメモリのうち
これすらもOSに返したいということならこの流れの中で現状答えがでていないキモヌ
229: (ワッチョイ 6128-l8k0) 2023/06/17(土)15:31 ID:S+64vkUJ0(2/4) AAS
まあしいて言えばプロセスを一旦exitして再立ち上げ?
230: (ワッチョイ 6128-l8k0) 2023/06/17(土)15:45 ID:S+64vkUJ0(3/4) AAS
普通に作ったら(コードで明示的に直接OSのAPIでメモリを分捕って解放とかしない限りは
プロセスのprivate bytesはプロセスが氏ぬまで増えることはあっても減ることは無いという印象、
231(2): (ワッチョイ 7d9b-trtU) 2023/06/17(土)16:27 ID:5e+acAEX0(1) AAS
>>225
スマンまじで理解できないのだけど、なぜvectorに限った話をしてるの?
232: (テテンテンテン MM96-Axrn) 2023/06/17(土)19:22 ID:mYwWSuEFM(1) AAS
>>231
巨大インスタンスは>227
233: (ワッチョイ d9ab-trtU) 2023/06/17(土)19:29 ID:HtrmHz3i0(1) AAS
回答者のレベル低いな~~~
こんだけダラダラ続けて、結局質問者>>182が>>190で早々に結論づけてることをリピートしてるだけw
234: (ワッチョイ 69f0-J7ro) 2023/06/17(土)19:54 ID:9hSxsWrs0(1) AAS
アロケータ気に入らないなら自作くらいしろよポンコツ
なにもかもSTLに頼りやがってそれでPGやってるつもりになるなよ
235: (ワッチョイ 6128-l8k0) 2023/06/17(土)20:19 ID:S+64vkUJ0(4/4) AAS
人類には早すぎた話題また……
上下前次1-新書関写板覧索設栞歴
あと 767 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.013s