Android 用のゲームを書いていますが、パフォーマンスとメモリが心配です。Java は多くのクラスで効果が低くなりますか?
4 に答える
多くのクラスがパフォーマンスに影響しますか?
私はそうは思わない。起動時にすべてのクラスをメモリにロードするのが少し遅くなる (無視できる) ことは 1 つだけです (これは新しいバージョンで最適化されています)。
J2ME の時代、一部のデバイスでは 64k jar の制限がありました (たとえば)
。多くのクラスを使用すると jar サイズに影響があり、トリックの 1 つはクラスの数を減らすことでした。
唯一のオーバーヘッドは、これらのクラスのそれぞれのクラスのロードです。
これが起動時または特定のクラスのオブジェクトへの最初のアクセス/割り当て中 (または何らかの方法で両方の組み合わせ) に発生するかどうか
はわかりませんが、これは本当に問題ではありません。
パフォーマンスに関しては、クラスの数は実質的に無関係です。通常、知覚されるパフォーマンスにはるかに大きな影響を与える他の多くの領域があります (ここでは数パーセントではなく、大きさについて話しています)。
また、多くのクラスを何と見なすかにもよります。私は 30,000 個以上のクラスを多く考えます (私はこの数のクラスを持つプロジェクトで働いていました) が、おそらくすでに 1,000 個のクラスを多く考えているでしょう (そして 1K は実際には何もありません)。通常、別の 10K クラス (これらも使用されます。ロードされていないクラスはパフォーマンスに測定可能な影響を与えないことに注意してください) を追加することによる唯一の注目すべき効果は、起動時間が数秒長くなることです。
最初に正しい機能に焦点を合わせ、それを達成したときのパフォーマンスについて心配してください。関数の作業中に考慮すべき唯一のパフォーマンスの考慮事項は、適切なデータ構造とアルゴリズムの選択です。適切なデータ構造と効率的なアルゴリズムを選択することは、クラス ローディングの領域で数パーセントを削減するよりもはるかに大きな効果があります。
心配する必要があるクラスはそれほど多くありません。むしろ、インスタンス化するオブジェクトの数と、オブジェクトが逆参照される頻度に依存するため、GC によってクリーンアップする必要があります。
そのため、作成および逆参照されるオブジェクトの数に注意してください。