Re: GCと計算量 (Re: GC Re: LISPを使うとき([Q] ログイン
久野です。グループがもはやlispじゃないと思うが計算量だとどこか…
kono@ie.u-ryukyu.ac.jpさん:
> free を O(1) にするには、memory pool みたいなのを使うと可能
> です。
そりゃフリーリストの先頭にくっつければO(1)つまり定数時間になり
ますが、alloc するときどうするの。ヒープを端から取って使い切る前
に計算終了するんだったらそもそも動的alloc不要だよね。フリーリス
トから取ろうとしたとたんに、O(1)じゃなくなるでしょ、適合するもの
を探さなければならないから。全部同じサイズ? それはずるいな ^_^;
> 非破壊append bench mark を別プロセスでやって GC しない
> で抜けて来るみたいな感じ。それが一般的なGCの仮定に反する(自
> 由に参照をコピーできる) のはその通りです。で、そういうことす
> ると GC を持っているシステムでは、まずいってな話でしたよね。
GCがなくてすむ例でGCが遅いとかいうのはフェアじゃないね。GCが
ないとメモリが足りない例でGCと手動と比べてよ。
> 二乗でゴミを吐くプログラムなんてダメダメなのは、その通りなん
> だけど、線形でゴミを出すのは良くありますよね。というか、これ
> までの話だと、むしろ推奨されている。で、そうやって生成したゴ
> ミを回収するコストが、ゴミの量に比例するかって言うと、それは
> アルゴリズムによります。
比例する=それぞれのゴミについて(償却)定数時間、ね。では定数時
間のアルゴリズムを挙げてみてください。
「よる」っていうのだからあるんでしょ? 久野
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735