0

iPhone-3GS、iPhone-4、iPhone-4S で動作するアプリケーションを開発しました。

起動プロセスには、iPhone-4sで30 秒、 iPhone-3gs で 50 ~ 55 秒かかります。同じネットワークでテストされました

この起動プロセスでは、アプリは、データベースからの古いデータの削除、WebService の呼び出し、応答データのデータベースへの挿入など、いくつかのアクションを実行します。アプリケーションは、 performSelectorOnMainThread メソッド (順次) を使用して、メイン スレッドでほぼ 8 つの Web サービスを呼び出します。

挿入には SQLite と Compiled Query 構造を使用しています。アプリケーションのパフォーマンスを向上させたい、アプリケーションの起動時間を短縮したい。

Android チームも同じバックエンドを使用しており、同じことを行っています。Galaxy note だけで 20 秒かかります(Team android は Object Relational Modal を使用して Sqlite データベースと通信しています)

これがパフォーマンスの高速化の理由ですか?

Sqlite(プロセッサ固有、時間がかからない)を処理しながらパフォーマンスを向上させるために、Objective-CのJavaでORMと同じように機能するものはありますか?

4

2 に答える 2

1

まず、メイン スレッドでネットワーク操作 (Web サービスの呼び出し) を行うべきではありません。これは、バックグラウンド スレッドで行う必要があります。SQLite を直接使用する方法についてはよくわかりませんが、CoreData を使用すると、バックグラウンド スレッドで「データベース」を更新し、メイン スレッドを使用して 2 つをマージすることができますManagedObjectContexts

WS 呼び出しをバックグラウンド スレッドに移動すると (AFNetworking は優れたフレームワークです)、多くの改善が見られると思います。

私が持っている 1 つの例は、SQL Server DB から 7000 レコードを取得し、NSArray (データは JSON として入ってくる) を作成する Web サービス ベースのアプリで、そのプロセスには 7 ~ 10 秒かかります。自動認証プロセスを同時に実行することで、ユーザーへの影響をさらに最小限に抑えます。

30 秒は、ユーザーが何か IMO を待つには長すぎます。

于 2012-10-29T13:11:38.503 に答える
1

iOS アプリのパフォーマンスを向上させるための14 のベスト ヒントはこちらから入手できます。

このチュートリアルでは、ポイント 13 で必要な情報が得られます。

于 2015-01-03T15:32:22.767 に答える