平成28年春期午後問2

まきさん  
(No.1)
https://www.fe-siken.com/kakomon/28_haru/pm02.html
失礼します。この問題の
「GCの対象となるメモリ領域のセルの数M」
「GC開始時のLIVEセルの数L」
って具体的に図で考えるとどこに該当するのでしょうか?
図3、図4などを用いるか新たに図を提供して
こことここのセルだよ、というふうに
教えてくれると助かります。
2021.01.10 19:42
まきさん  
(No.2)
すいません、上記は自己解決したのですが次は
GCの効率という単語が、なぜ
(M-L)/(L+M)というふうに表せるのかわかりません。
GCの効率って一体なんですか?
2021.01.10 20:06
Drakeさん 
(No.3)
-GCの目的
GCは未使用セルがなくなった時に行われ、そのときメモリ領域のセルの状態はLIVEセルかガーベジのどちらかです。
このときに「ガーベジセル」を「未使用セル」に戻すことがGCの目的になります。

-GCの効率
GCは未使用セルがなくなった時に問答無用で行われますが、この時にガーベジセルが少ないと、せっかくGCを行っても大して目的を果たせないことになります。
GCを行ったときにどれくらいのガーベジセルを未使用セルに戻せるか、といったことをGCの効率といっているんだと思います。

-(M-L)/(L+M)
今回の効率は「一回のGCにかかる時間の中で、どれだけ多くのガーベジセルを未使用セルに戻せるか」です。
この時「効率」を上げる方法として、
1. 一回の作業時間は短ければ短いほどいい
2. ガーベジセルは多く存在しているほうがいい
といったことが考えられます。
これをまとめると(ガーベジセルの数)/(一回のGCにかかる時間)の値が高いほど「効率が良い」ということになります。
設問1のa~cより上記の式は(M-L)/(L+M)で表せます。

ちなみに私は問題文の「GCの効率とL/Mの関係を示すグラフの形として」という部分を読んだときに、L/Mが「すべてのセルのうちどれだけLIVEセルがあるか」を表しているとわかり、GCの目的からLIVEセルが多いのはよくないので、L/Mが大きくなればなるほどGCの効率が下がると判断し、正しい答えを選べました。自己流かもしれませんが、個人的にはこちらのほうがしっくりくる気がします。
2021.01.10 23:08
つきさん 
(No.4)
「GCの対象となるメモリ領域のセルの数M」って、
解答では「全メモリ」という解釈がされていますが、
「全メモリの中でも未使用領域に返却するセルの数(=ガーベジ)」って解釈できないですか……??

結構納得いかないんですけど……。
2021.02.21 17:07

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop