2013-10-02 14 views
18

SharedPreferencesの速さはどれくらいですか?それらを読書のための記憶に入れる方法はありますか?私はリストビューが各セルを表示するために照会する必要がある少量のデータを持っており、私はフラッシュメモリへの呼び出しが遅すぎると心配しています。私は書き込み速度が心配されていません。 SharedPreferencesではなくJSONオブジェクトを使用してデータを永続させることを検討しています。思考?SharedPreferencesの読み取り速度

+0

SharedPreferencesは基本的に、アプリの「サンドボックス」ストレージにあるXMLファイルです。 ADBを通じてアクセスして閲覧することができます。 – hakanostrom

答えて

35

読み込み用にメモリに格納する方法はありますか?

これらは、最初の参照後にメモリに格納されます。最初に特定のSharedPreferences(たとえば、PreferenceManager.getDefaultSharedPreferences())を取得すると、データはディスクから読み込まれ、保持されます。

+2

あなたが 'PreferenceManager.getDefaultSharedPreferences()'のインスタンスを取得すると、 'SharedPreferences'の保存されたデータ全体が読み込まれます。 –

+6

@MoshErsan:はい。 'SharedPreferences'は' ContextImpl'の 'SharedPreferences'の静的' HashMap'に保持されます。プロセスが終了するまでそこに残ります。 https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/ContextImpl.javaの 'sSharedPrefs'を参照してください – CommonsWare

+1

これを行う利点は何ですか? –

-1

私は、ListViewコントロールは、各セル

あなたはシングルトン、共通クラスを作成し、二回目からそこからそれを読み取ることができません 表示に照会しなければならないことを、少量のデータを持っていますか?私はそれをするだろう。

+0

シングルトンを介して共有グローバル状態を増やす必要はありません。 Androidは既に 'SharedPreferences'と' Bundles'を介してグローバルな状態管理のためのソリューションを持っています。それで十分です。できるだけグローバルな状態を取り除くべきです –

13

私のアドバイスは、まずパフォーマンスをテストしてからスピードを心配することです。一般的に、メンテナンス性とスピードを優先させるアプリがあれば、もっと幸せになれます。エンジニアがアプリケーションを安定させる前にパフォーマンスを達成するためには、少し早く実行されるが、バグの多いアプリがある。

関連する問題