2011-07-26 9 views
3
パフォーマンスの観点からは

にかかわらず、他の制約の:SQLiteDatabase Androidのパフォーマンス質問

アプリケーション全体のライフサイクルにSQLiteDatabaseを開くのコストは何ですか?


必要に応じて(および状態を維持する)毎回開閉するよう努力する価値はありますか?

答えて

0
  1. オープンデータベース一度=>一
  2. クローズ/オープンオープン1でデータベースを複数回=>複数のクローズ/オープン

)及び2)、メモリコストでありますデータベースが開いている間も同じです。したがって、2)は、この仮説の非常に減少したセットで明らかに高価です。

+1

しかし、データベースがプロセスサイクル全体を開くにはいくらかのコストが必要ですか? –

+0

メモリ。しかし、それは "パフォーマンス"には影響しません。 – Mat

1

あなたがSQLiteOpenHelperを使用している場合は、それが一度だけ開かれ、一度だけ閉じられますつまり、あなたのデータベースオブジェクトをキャッシュします。キャッシュされたデータベースを使用するため、便利な場所にいつでもgetReadableDatabase()またはgetWriteableDatabase()を使用できます。

SQLiteOpenHelperまた、データベースの作成、オープン、アップグレード(およびAPI 11では、ダウングレードも)が簡単にできます。また、SQLiteでのGoogleの推奨方法です。