自分の目的に活用できるようなUIを見つけることができるかどうかは疑問です。
ただし、 Zoomのものとは異なり、または私が数年前に行ったように、通常はバタフライビューと呼ばれますが、コード行の場合は関数ではなく、作成するのはそれほど難しいことではありません。

プログラミングは簡単です。いくつかのスタックトレースがあり、各スタックトレースは一連のコード行で構成されています。ここで、コードの各行は、「一番下の」行を除いて、関数の呼び出しを表します。100個のスタックトレースがあると仮定します。
この場合、どの時点でも、「フォーカス」である特定のコード行がありますfoo.cpp: 326
。これ33%
は、その行を含むスタックトレースの割合です(一部のトレースに行が複数回表示されている場合でも)。そのパーセントは、その行を削除できた場合に全体的にどれだけの時間を節約できるかということであり、それが責任を負っています。
これらの33個のスタックトレースgzorn.cpp: 99
のうち、25個と8個のフォーカスラインの上に線が表示されると表示foo.cpp:105
されます。(これは再帰の場合です。再帰がある場合は、祖先または子孫を合計してフォーカスラインと同じパーセントにする必要はありません。)
また、その行を通過する33個のスタックトレースについても説明します。そのうちの16個はbar.cpp:45
次の行で、10個は、、bar.cpp:10
7個はbar.cpp:17
です。
または、各行に、その行を通過するトレースの割合を表示することもできます。
次に、ユーザーは、これらの「隣接」のいずれかをクリックしてフォーカスを変更することにより、コストのかかるコード行を探すことができます。
これがプログラミングがいかに簡単であるかに注目してください。スタックトレース自体以外のデータ構造は必要ありません。また、統計を計算する必要もありません。さらに、スタックトレースを多数持つ必要はありません。これは、パーセントをより正確にするだけで、特に重要ではないためです。
PS私はほとんど言及するのを忘れました。スタックトレースは、CPU時間中だけでなく、I/Oまたはその他のブロックされた時間中にも取得する必要があります。多くの場合、I / O、スリープ、リソース待機などが原因でプログラムが遅くなる可能性があるため、これは重要です。そのことを知っておく必要があります。他のプロセスとの競合が原因で速度が低下することを心配している場合は、パーセントがあまり低下しないため、実際には問題にはなりません。