2010-11-19 29 views
3

私はアプリの起動に非常に長い時間を掛けようとしています。それは始動するのに約6-7秒かかり、それはちょっと長いです。私はデータセットや何もロードしていないが、アプリは計算機なので、xibにはたくさんのボタンとボタンイメージがある。iPhoneアプリの起動時間を短縮する

Instruments(または他のもの)を使用して、どこに時間を費やして最適化できるかを分析したいと思いますが、Instrumentsのマニュアルでは、使用方法の詳細を教えてくれませんこの特定の問題および/または結果の解釈方法については、

これをテストする方法についてご意見はありますか?このためにInstrumentsを使用する方法に関するチュートリアルへのポインタ? iTunes Uのビデオなど?

ご提案は大歓迎です!

ケニー

+1

回答に興味のある人にはちょっと思い出していますが、なぜそれが遅いのかを具体的に探しているわけではありません。私はInstrumentsのようなプロファイリングツールを使用して、理由。私は釣りマニュアルではなく、魚を探しています。 :) –

+0

あなたが尋ねてきたので、しばらくしている...あなたはおそらくその特定の問題を解決しました。たぶんあなたはあなた自身の答えを提供することができますか? – Palimondo

+1

プロファイリングツールを使用してスローダウンを特定する方法について、私はどこまで尋ねたことがありませんでした。私は最終的に私のアプリの起動時間を減らす方法を説明する答えを下に追加します。 –

答えて

1

:XCodeのから実行している間

はこの6-7秒ですか?または、iPhoneでタップして直接起動することはできますか?

デバッガとインストゥルメントは、オーバーヘッドに追加するだけなので、ここではあまり役に立ちません。プロファイリングに役立つデータはありません。

編集:プロファイリングツールの面では

、あなたはシャークを使用してに見てみたいことがあります。 http://www.switchonthecode.com/tutorials/using-shark-to-performance-tune-your-iphone-app

これは、一般的に使用するために非常に簡単です。それはまったくわかりやすい。

+0

いいえ、これは電話で起動してから6〜7秒です。デバッガ、xcodeなどはありません。私は、プロファイラがオーバーヘッドに追加されることは理解していますが、ボトルネックなどを見つけるのにかなり役立ちます。 –

1
ここ

ある提案のカップル:

  • あなたはすべてのこれらのボタンは、一度にアップロードする必要がありますか?
  • 画像に透明シートを使用していますか?
  • 正確なサイズが必要な画像はありますか?ストレッチ(サイズ変更)には時間がかかります
  • メインスレッドをブロックしている操作を実行していますか?上記の提案のいずれかを行う前に
+0

私はすべてのボタンを取り外そうとしましたが、開始時間の約1秒しか削っていません。私は明らかな潜在的な減速のすべてを試みたと信じていますが、私は原因を見つけることはできません。だから私は何が間違っているのかの提案を探しているわけではありませんが、プロファイリングの仕方を知ることができるポインタを探していますので、これを適切に調査し、減速の発生場所を見つけることができます。 –

+0

しかし、すべてのあなたの質問に答える。いいえ、私はすべてのボタンを前面に持っている必要はありませんが、0ボタンを押しても5〜6秒かかることがあります。ボタンの画像には透明なものがありますが、それらを取り除いてしまいました。他に透明な画像はありません。関連するすべての画像は、ネイティブサイズで使用され、サイズ変更は行われません。メインスレッドをブロックする操作はありません。私はバックグラウンドでタスクを生成しますが、メインスレッドをブロックしていないことを確認しました。また、単に質問を削除するためコメントアウトしました。ボタンは1秒間消しません。他は、何も目立たない。 –

0

あなたの実際のデバイス(デバッガが接続されていない)に空のダミーアプリ(おそらくXCodeウィンドウベースのアプリテンプレート)の起動時間を測定します。その後、スタートアップ時間を最も遅くするものが見つかるまで、アプリからの初期化コード、ビュー、オブジェクトをこのダミーアプリに追加し始めます。

2

私が最終的に私の問題を解決する方法を尋ねました...それは小さな変更の束であり、貯蓄がどこに現れたのか本当にわからないので、私は以下の理由を説明します。

私のアプリは電卓なので、たくさんのボタンがあります。私は最初にそれが問題を引き起こしているボタンの読み込みでなければならないと思ったが、上のコメントでPaulに説明したように、0のボタンをロードしても、起動時間の1秒だけを削った。多くの小さなものを変更した後、私は起動時間の3秒を節約することができました。これで十分でした。

私は素晴らしいテクスチャ勾配画像である背景画像を持っていました。私はそれのファイルサイズを減らしました(テクスチャを変更し、別のオプションでエクスポートしました)。

私は100ボタンをフロント(計算機)から約15まで読み込んでいましたが、ユーザーが気付かないように秘密の方法でそれをやろうとしました。ボタンをタップして表示する必要があるため、約50個のボタンは表示されないため、遅延ロードが容易です。他のものは表示されていますが、私は最初にいくつかの番号を打つ必要があるため、ユーザーはスタートアップ時にそれらのほとんどをタップするつもりはないと考えました。そこで、数字パッドのボタンとClearボタンをxibに残して、起動時にロードされるようにしましたが、xibからすべてのものを削除しました。

大きな空白の領域が画面に残っていて、空白の領域を埋めるためにボタンを見ることができます(すばやく塗りつぶしますが、空白の領域が表示され、すべてのボタンが表示されます)。 )。そこで、バックグラウンドグラデーションのグラフィックを更新して、ボタンの画像を追加しました。ボタンはそこにあるように見えますが、そうではありませんので、ユーザーが2秒以内に偽のボタンをタップしない限り、問題に気付くことはありません...そして、通常、彼らはそのボタンをもう一度タップしようとします。遅延ロードされ、したがって動作します。

関連する問題