[過去ログ] スレ立てるまでもない質問はここで 147匹目 [無断転載禁止]©2ch.net (959レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
899(4): 2017/05/21(日)12:09 ID:KYYeGok8(2/10) AAS
>>884
> 確かメモリクリーナーってアプリはメモリ圧迫してOSのメモリ断片化解消機能を意図的に呼び出すアプリなんだけど、そう言う意味じゃ大量にメモリ喰う時点で断片化はOSが解消してくれんじゃね?
ディスクと同じで断片化を解消するにはメモリ内のデータを移動しなきゃいけないが、
ポインタ(メモリ座標の生の値)を使う言語ではデータの移動はできない。
参照を使う言語であれば、可能かもしれないが(ただしOSの仕事ではない)
またディスクは断片化していても、遅くなるだけでファイルを作成することはできるが
メモリの場合は、断片化によってうまれて小さな空き領域に
大きなデータを作ることはできない。
何度もメモリの確保と解放を繰り返す処理を行うと、使えない小さな空き領域が
たくさん作られていくことになる。
900: 2017/05/21(日)12:19 ID:fDsf7qWs(4/4) AAS
>>899
>>893
まあなんだ。
断片化して来たら意図的にメモリ大量確保でスワップファイルに吐き出させて再配置させりゃあ良いってわけだな。
903(3): 2017/05/21(日)13:19 ID:9HtUCvpi(3/7) AAS
>>899
これは俺の頭が腐ってるのか
・OSがOS上で動作するプログラムに提供するメモリと、本当に物理的な物理メモリと、それぞれの中身は必ずしも同一でない、
だからswapなんてものが存在・機能しうるし、だから上で語られている「メモリクリーナー」は一応機能しうる、と思うのだが
・その言語を使ってプログラマが書くコードについてではなく、実際の動作について、ポインタ使わない言語ってあるのか
904(1): 2017/05/21(日)13:29 ID:2TTm6ATP(2/3) AAS
>>903
大丈夫。腐ってない。
>>899がシッタカ押し通そうとして自爆しただけだ。
909(2): 2017/05/21(日)15:07 ID:9HtUCvpi(4/7) AAS
>>906
875,878,880と来てたからOS管理の物理メモリ領域を考えてるのかと思っていた
それで>>884はOS管理のメモリ全体の話として「メモリクリーナー」出したんだろうと認識していた
しかしそうすると>>899がわけわからなかったので903を書いたところ、
906はプロセスが見てる仮想アドレスのほうだけ考えろという
しかしそうすると>>875がわからん
現実にOSには返却されなくてもmalloc/free叩いてるプロセスから見たらしっかり解放されてんじゃね?と思うのだが
さらにいえば、それはつまりプログラマ側が考えてメモリ確保/解放しろよという話であり、
(851のケースだと処理をある程度細切れにしたうえで、繰り返し動的に使うメモリ領域のサイズを固定にするとか)
GCのある言語とないcのような言語とを比べる文脈で意味のある内容でもない
という気がするんだが
あとポインタ使わない言語の件もさっぱりわからん
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s