2009年9月28日月曜日

1.0.5.0 がリリース

Vectorに新しいバージョンがリリースされました。今回はマイナーな修正で、CRUD(detail)の表にマクロ名を加えています。


  • CRUD(detail)の表示項目にマクロ名を追加
  • CRUD(summary)の表示項目からDataStep/PROCを削除

2009年9月9日水曜日

CRUD表にマクロ名を表示してみる

CRUD表にマクロ名を表示してみた。ちょっと考え込んだのは、マクロを呼び出すとき最後にセミコロンをつけるかどうかです。コメントアウトしやすいように %foo; とか書くと、マクロの範囲が判定しにくくなります。これは、何も行わない空文が展開されるからです。

素直にMPRINTだけ補足するだけでは足らず、マクロの終端を判定するロジックが必要になります。厳密な構文解析は行わず、空文が展開されたらマクロの名称をクリアするようにして解決しています。

エクスポートの機能をチェックしたら、マクロ単位で入出力を集約したCRUD表を作ります。


2009年9月7日月曜日

次の機能拡張を検討中(1.0.5.0)

1.0.4.0のリリース依頼は申請しました。ほどなく、Vectorで公開されます。

マクロ単位の処理時間集計は、便利で私の仕事でも役立っています。というか、私の仕事で役立つツールを作っているのが実態です。

次の機能は、CRUD表にマクロの名前を入れたいと考えています。まずは、マクロの名前を縦軸に入れる。うまくいけば、マクロ単位で集約したCRUD表にしたいと考えています。で、その先は...ドキュメント化ですね。

SAS Log Utilityが役立つ場面

SAS Log Utilityはどんな場面で使うのか説明します。

  • SASプログラムの処理時間を短縮したいとき
  • SASプログラムの入出力を解析したいとき

SASプログラムの処理時間を短縮したいとき

SAS Log Utilityを使ってSASログを解析するとボトルネックとなっている処理を特定できます。SASログを解析して、データステップ/プロシージャ単位、データセット単位、マクロ単位で処理時間を集計することができます。集計結果をExcelに出力して、処理時間順でソートすることで、ネックとなっている処理が浮かび上がってきます。

SASプログラムの入出力を解析したいとき

他の誰かが書いたSASプログラムをメンテナンスしなければならない。でも、入出力仕様書も設計書もないとしたら、SASプログラムと実際のデータを紐解くしかありません。コメントの無い長いプログラムを読み解くとしたら、大変時間の掛かる作業になります。

SAS Log Utilityは、SASログを解析して、入出力のデータセット、ファイルをCRUD表として出力します。CRUD表はデータの流れを可視化して、プログラムの理解を助けます。

2009年9月3日木曜日

マクロ単位で処理時間を集計

マクロ単位で処理時間を集計する機能を実装しました。3週間以内に1.0.4.0としてリリースします。マクロ単位で処理時間を集計するためには、options mprint又はmprintnestを付けてSASを実行してください。mprintnestはSAS9の新しいオプションです。

2009年9月1日火曜日

データの量をどうやって示すか?

ボトルネック解析で、OBS数、変数の数を追跡できるようにしようと考えています。実験的に、OBS数、変数の数をステータスバーの右下に表示してみました。数値で見ても、いまひとつピンときません。やはり、アナログでデータの量を示す工夫が必要です。StringGridの仕組みから離れて考えるべきか、良い方法を探しています。