私は現在、ビデオゲーム(ポケモン特有のもの)のリファレンスとなるAndroidアプリを開発しています。すべてのデータを静的なクラスに保存することに本質的に間違っているものがあるのでしょうか?このデータセットは、新しいゲームが出てくるとき以外は固定されているため、更新はあまり必要ありません。また、できるだけ負荷時間を最小限に抑えたいので、データをサーバーに保存することを本当に望んでいません。多くのデータを静的クラスとして保存するのは効率的ではありませんか?
0
A
答えて
4
はい、これは重要であるかどうかは、話しているデータの量によって異なりますが、非効率的です。
非効率性は、以下に起因する:
static
の変数の初期化子へのデータは、そのデータのすべてがクラスロード時に(例えば、文字列プールに)ロードする必要がありますハードワイヤーた場合アプリケーションの存続期間中、そこにとどまる必要があります。いいえ機会は(まだ)必要なものだけを保持する。第2の問題は、クラスの静的初期化メソッドでは、軽微な量のコードがある可能性があることです。実際には全体の効率に影響を与える必要はありません「もの」のための
長期メモリ使用量。 GCには、スキャンする対象が多く、見た目が増えています。また、GCサイクル後には空き容量が少なくなるため、より頻繁に実行する必要があります。
あなたのコードで自分のデータを埋め込むことは柔軟性に欠けることがしやすくなるという問題もあります。データを変更する唯一の方法は、再構築/再デプロイです。それは開発者の時間の面で非効率的なことがあります。
さまざまな方法があります。 e.h。プロパティファイル、環境設定、軽量データベース。これらのうちのいくつかは、それほど良くないとは限りませんが、ロード時のパフォーマンスを提供します。例えばレイジーローディングによって。それらのすべてが、ロードされたデータが必要ない場合は破棄され、その後リロードされる可能性があります。
1 - あなたは静的変数にnull
を割り当てることがあったとしても、まだ可能性の高いクラス自体に関連付けられた文字列プール内のオブジェクトへの暗黙の参照が存在することになります。
関連する問題
- 1. データを効率的に保存する
- 2. クラスに静的なconstexprメンバーのインスタンスはありませんか?
- 3. CascadeClassifierのMAXSIZEパラメータ:: detectMultiScale効率的ではありません
- 4. 効率的なデータ保存、システム(例)
- 5. 静的クラスを操作してテストしたものではありません
- 6. このデータを保存してトラバースする最も効率的な方法は?
- 7. Javascriptではオブジェクトをキーとして使用するのが効率的ではありませんか?
- 8. 静的クラス...これは問題ありませんか?
- 9. DBに多くのデータを効果的に保存する方法は?
- 10. Java/Android - 多くの変数を保存する最も効率的な方法
- 11. セマンティックグラフを効率的にビルドして保存する方法は?
- 12. Shinyアプリを使用して効率的にデータを保存
- 13. 動的アンケートを効率的に保存する方法は?
- 14. なぜこのコードは効率的ではありませんか?
- 15. 多くのPythonオブジェクトを効率的に割り当てる
- 16. C++で "クラスの静的メンバーではありません"エラーを取得する
- 17. 別のクラスからのアクセス方法静的ではありませんか?
- 18. Android:java.lang.NoSuchMethodError:静的メソッドはありません。
- 19. アクションに多くのパラメータを効率的に渡しますか?
- 20. 静的クラスでデータを保存する[PHP]
- 21. 多くのデータをヘッダーで効率的に表示するには?
- 22. なぜGoogleのGsonは静的ではありませんか?
- 23. コレクション内のオブジェクトは静的ではありませんか?
- 24. データを保存して取り出す最も効率的な方法
- 25. 静的なコンテキストから非静的メソッドを参照することはできませんが、静的なものは何もありません。
- 26. Androidのアダプターは、静的内部クラスまたは非静的内部クラスである必要があります
- 27. Java:ジェネリックメソッドは静的でしかありませんか?
- 28. Android ImageDownloaderクラスで可能なバグ:sHardBitmapCacheは静的ではありませんか?
- 29. ファイルツリーオブジェクトの多くのパスを解析します。効率的なアルゴリズムはありますか?
- 30. 静的な文字列のリストを保存して読み込むのが最も効率的です
アプリケーションと一緒に配布された.propertiesファイルはありますか? – EJP
Android固有のストレージメカニズム(SharedPreferencesなど)を調べてください。 – chRyNaN
データに依存しますが、SQLiteはおそらく必要なものです –