Petit Profiler

COM/EXE profiler for DOS on PC-9800 series computer.

Download:  petit_profiler_v0.1a.zip

PC-98 の DOS 上で動作するプロファイラツールです。 タイマ割り込みで定期的に CS:IP を監視して計測対象のプログラムのどの部分が多く実行されているかを記録します。

プロファイル結果は 128KiB のバイナリファイルとして保存されます。 ソースコードの関数名と実行頻度を対応付けるには、プロファイル結果とリンカの map ファイルを突き合わせるなどして、各関数に対応する IP レジスタの値が何回記録されたかを集計する必要があります。

v0.1a 時点ではプロファイラの動作について以下の制約があります。

  • タイマ割り込みをプロファイル計測に使用するため、タイマ割り込みを使用しているプログラムのプロファイルは計測できません。
  • タイマ割り込み発生時に、プログラム最初の命令の CS の指すセグメントと異なるセグメントを実行中の場合、その CS:IP は記録対象となりません。
    • 複数のコードセグメントを持つプログラムでは、最初の命令があるコードセグメント以外のセグメントの実行の様子は記録できません。
  • CS:IP の記録のために 128KiB のコンベンショナルメモリを消費します。
    • コンベンショナルメモリを多く使うプログラムは実行できない可能性があります。
    • C 言語風に書くと uint16_t log[65536] をコンベンショナルメモリに用意して割り込みハンドラで IP に応じて log[IP] += 1 をしているためです。

更新履歴

  • 2026/04/29: version 0.1a
    • 初版


トップに戻る