« 貧乏暇なし | メイン | 何を目指すか »

2007年10月07日

まだ暑い

日中はまだ暑い。 昨日の土曜日午後3時ごろは、八本松での温度は33度を示していた。 世間は3連休だけど通常勤務(半日)なので、2時すぎまで大学に居た。 近ければ月曜も行きたいところだけど、家でやるために資料など持ち帰った。

「家でもLinux」という環境にしているので、その点は便利。 後期の講義では学生実験だけでなく、アーキテクチャの講義でもLinuxを使う。 たとえば、PCの命令列、つまり、アセンブラのコードは適当なCのプログラムからはき出させる。 GCCはやたらとスタックを多用したコードを出すので、手加減が必要。 試行錯誤で「10分程度で分かる程度のもの」を発見しないといけないので、こっちも予習(?)している。

x86のコードやGCCのオプションにもだいぶ慣れた。 最適化が出来過ぎていて、簡単なCプログラムだと跡形もないコードを出すので、教育上はよくない。 こうなるとコンパイラの問題になり、「昔取った杵柄」が有効になる。 まぁ、学生さん(情報の2年生)の中にもこういうのが好きな人も居るみたい。 もっとも1割程度だから、残りの人にもなんとかついてきてもらいたい。

投稿者 tadashi : 2007年10月07日 00:40

コメント

gcc -pg -g -O で使うと、gprof や gdb を使うことができるようになりますし、弱い最適化をしてくれているので実用上もそこそこ使えます。
-g オプションでは、gdbでソースレベルデバックをサポートするために、ソースとアセンブリの対応が分かりやすいコードを生成するようです。
-pg オプションで gprof を使えるようにすると、関数の呼出関係や呼出回数や消費時間がよくわかり、プログラムの中の局所性を見付けるのにも使えます。

投稿者 さかい : 2007年10月07日 15:58

コメントしてください




保存しますか?