PythonやMatlabで利用できるような言語のラインプロファイラーを作成するために何が必要かを判断しようとしています。
「ラインプロファイラー」を解釈する素朴な方法は、すべての行の周りに時間ログを挿入できると想定することですが、行の定義は、パーサーが空白を処理する方法に依存します。これは最初の問題にすぎません。解析ツリーを使用して、個々のノードの周りにタイミングを挿入する必要があるようです。
この結論は正しいですか?ラインプロファイラーには解析ツリーが必要ですか?必要なのは(時間ログを超えて)それだけですか?
更新1:質問がまだ解決されていないため、これに報奨金を提供します。
更新2:この質問に答えるのに役立つ場合に備えて、よく知られているPythonラインプロファイラーへのリンクを次に示します。構文解析に関連する動作の先頭または末尾をまだ作成できていません。Matlabプロファイラーのコードにアクセスできないのではないかと思います。
また、入力コードを手動で装飾すると、解析ツリーが不要になると言えますが、これは自動プロファイラーではありません。
更新3:この質問は言語に依存しませんが、R用のそのようなツールを作成することを考えているために発生しました(存在し、見つからない場合を除く)。
更新4:ラインプロファイラーとコールスタックプロファイラーの使用について-コールスタックプロファイラー(この場合)の使用に関するこの投稿Rprof()
は、ラインプロファイラーを介して物事を直接分析するのではなく、コールスタックを操作するのが面倒な理由を示しています。