fragmentation を実際に見てみる

Menu

malloc_test.c display_js.pl プログラムのパラメータを変えて、どのようにallocation pattern が変わるか見てみよう。

malloc_test.c は ring buffer に malloc を繰り返す。

    ./malloc_test -m 10000000 -l 10

などと実行する。

            case 'c': COUNT = atol(av[++i]); break;
            case 'a': ACTIVE = atol(av[++i]); break;
            case 'u': MIN_UNIT = atol(av[++i]); break;
            case 'm': MAXSIZE = atol(av[++i]); break;
            case 'l': MINSIZE = atol(av[++i]); break;
            case 'M': MEMORY = atol(av[++i]); break;

となっている。macOS / Linux あるいは様々な malloc での fragmentation を測定しよう。

データは display_js.pl で HTML/JavaScript で表示する。

    perl display_js.pl > data1.html ; open data1.html

などとする。

d3js を用いている。 典型的な場合を生成し、学科の自分のWeb pageに載せて、そのURLを示せ。

それに対する考察を示せ。


大量にメモリを消費してみる

実際に memory に memset して、どれくらいの時間がかかるかを測定する。

メモリを大量に食うプログラムと併用して、実行時間にどれくらい影響があるかを調べよ。

top を走らせながら

     perl -de 0
     > @a = 1..10000000

あるいは Python で同じことをする。Widnow を切り替えるなどしてみよう。

OSやmallocのライブラリによっても異なる。Mac OS X, Linux, Windows で調べること。

それぞれの違いに付いて考察せよ。


option

display_js.pl (あるいはそれが生成する HTML) は絶望的にダサい。

   日付/OS/malloc libraryくらい出せ
   色のセンスが絶望的、原色使うな
   拡大縮小ボタンが scroll で飛んでいってしまう
   複数のグラフを同時に表示したい
   大きさの単位がわからない、目盛くらい出せ
   無意味なアニメーションくらいしろ

この辺を改良して自分のWeb pageに載せよ。

Shinji KONO / Tue Jan 26 13:41:08 2021