diaryこの広告は、90日以上更新していないブログに表示しています。Lispファイルでプロファイリングする(SBCL)プログラムを作っていると、どこの部分が時間がかかっているか調べたいときがある。いうとき使うツールがプロファイラというもので、速度が遅い関数を特定できれば、そこをチューンアップしてプログラム全体の性能を改善するための手助けになる。Lisp)に標準装備されている「sb-sprof」というプロファイラで速度を測ってみた。SBCLのプロファイラにはもうひとつsb-profileというのもあるらしい。自分が調べたい呼び出しを狙い撃ちで指定できるようだが、使い方がよくわからなかった。プロファイラを使う自分の作ったプロジェクトで、csvファイルを読み込んで加工して表示する一連のプログラムがある。ひどいプログラムなので公開は差し控えるが、このプログラムは45個の関数を持ち、src/apro.lispに入っている。今回、遅い関数はどれか調べてみた。プロジェクト名はaproという。run(ここからはSBCL内。先頭の*はプロンプト。{AAACE21}>*プロファイラの使い方は以下の通り。:sb-sprof)でプロファイラを読み込む。(sb-sprof:start-profiling)を実行してプロファイラを起動する。なにか実行時間を計測したいプログラムを実行させる。計測が終了したら、(sb-sprof:stop-profiling)を実行する。(sb-prof:report)でレポート出力する。レポートは前半と後半の2部に分かれており、読み取り方はこれから勉強する。SBCL)月別アーカイブはてなブログをはじめよう!kitemwさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。