2012-08-26 6 views

答えて

12

SLIMEを使用している場合はprofiling commandsとなり、timeと実装固有のツール以外にも使用できます。

M-x slime-toggle-profile-fdefinition(特定のプロファイルに特有の機能を使用)、M-x slime-profile-reportを結果に使用し、M-x slime-profile-resetをリセット用に使用します。

+0

これは本当に使いやすいです。ありがとう。 – yilmazhuseyin

11

SBCLを使用している場合は、有効な統計プロファイラがあります(http://www.sbcl.org/manual/Statistical-Profiler.html)。

単純な測定の場合は、timeを使用できます。これはすべてのCommon Lisp実装で利用できます。

+0

私はsb-sprofパッケージが好きです。これは、すべての関数(システム関数を含む)を与える私の問題は、私は実際にそれらの関数のいくつかが呼び出されているか分からない。共通のlispにある行単位プロファイラの実装はありますか(python memmoryプロファイラのようなものですか?https://github.com/fabianp/memory_profiler)ここにサンプルのpythonコードとそのmemmory_profilerの結果があります。https://gist.github .com/3235444これにより、シーケンスタイプを変更し、memmoryの結果を見ることができます。それは明らかにボトルネックを表示しませんが、タイプに関連する問題を見つけるのにはかなり良いです。 – yilmazhuseyin

+0

また、SBCLを使用している場合は、ファイル(またはシステム全体)のコンパイルを行い、コンパイラの注釈全体を読み込んでください。おそらくそこにはいくつかの効率的なメモがあります。 – Vatine

+0

@yilmazhuseyin SBCLには[決定論的プロファイラ](http://www.sbcl.org/manual/Det​​erministic-Profiler.html#Deterministic-Profiler)もありますが、それはまだ関数指向であり、行指向ではありません)。誰が特定の関数を呼び出すのかを知るためには、関数名にSLIMEの 'Cc Cw c'を使うことができます(SLIMEには多くの便利な[相互参照コマンド]があります)(http://common-lisp.net/project/slime/doc/html/ Cross_002dreference.html))。 –

関連する問題