ホーム » スタッフ » 斉藤徹 » テスト返却・解説+参照カウンタ法

2006年12月
« 11月   1月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

最近の投稿(電子情報)

アーカイブ

カテゴリー

テスト返却・解説+参照カウンタ法

テストの回答・解説を行う。

メモリの使用量の総括

後期中間までの授業内容を総括し、処理速度をあげるためのテクニック紹介であった点を強調する。 しかし、プログラミングでは「速度」、「処理の複雑さ」、「メモリ使用量」が重要であるとの 視点から、「メモリの使用量」の話しをする。

リストなら、M(N) = (sizeof( data部 ) + sizeof( ポインタ )) * N
配 列 なら、M(N) = sizeof( data部 ) * N
ただし、想定データ件数=実際データ件数の場合。
現実は、C なら配列サイズは、固定なので、
M(N) = sizeof( data部 ) * MAX

参照カウンタ法

前の説明の「リストではポインタのデータ量が無駄」との話しを発展し、 malloc() は、もうちょっと無駄がある点を話したいので、参照カウンタ法の話しをする。

最初に、リストによる和集合計算のプログラムと、全リストの開放処理のプログラムを示し、 共有の発生するプログラムでは、全リスト開放で2重ポインタ開放が発生する可能性をしめす。 その解決法として、参照カウンタ法を示す。

最後に、参照カウンタ法の実例として、unix ファイルシステムでの参照カウンタの説明を行う。 参照カウンタ法の欠点(循環リスト)については、次週。