fragmentation を実際に見てみる
Menumalloc_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に載せよ。