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