カスタム URL スキームからアプリを起動すると、アプリがバックグラウンド化されていないと、起動シーケンスに必要以上に時間がかかります。時間プロファイラーを使用して、どのメソッドが非常に時間がかかっているかを確認したいと考えています。実行時に「アプリの起動を待つ」オプションがあることは知っているので、URL を使用して起動できますが、プロファイリング スキームの下には表示されません。URLを使用してアプリを新しく起動し、起動時にタイムプロファイラーを実行する方法を知っている人はいますか?
1 に答える
「どのメソッドが非常に時間がかかっているかを確認してください」
いくつかのメソッド (またはいくつか) が、それ自体で多くの CPU 時間を浪費していると思いますか? または他のメソッドを呼び出すことで、CPU 時間を浪費していると思いますか? もしそうなら、修正するのは簡単ですが、そうではありません。
何らかの I/O に時間が費やされている可能性が高く、場所ではなく理由を理解する必要があります。
デバッガーで (@ChrisTruman の推奨事項を使用して) 起動できる場合は、Ctrl-C、Ctrl-Break、Escape、または中断するキーの組み合わせで中断するだけです。これは、主観的に遅い時間帯に行ってください。
スタートアップに、あなたが思っているよりも 3 倍の時間がかかっているとしましょう。もしそうなら、それは時間の 3 分の 2 が不要な I/O の実行などに費やされていることを意味します。つまり、中断するたびに、速度低下の原因となる行為を行っているときに 2/3 の確率で中断するということです。そのため、数回中断し、そのたびにスタックを読み取ったり、変数を調べたりするだけです。遅い理由がわかります。whereを探す必要はありません。それ自体が表示されます。
それがこのテクニックの基本的な考え方です。