1

オブジェクトのコレクションへの静的参照と、シングルトンクラスを持ち、コレクションをシングルトンクラスの通常のフィールドとして持つこととの間にパフォーマンスの違いがあるかどうかを尋ねたいと思います。

私の知る限り、静的フィールドはヒープの別の部分に格納されているので、この場合にシングルトンを使用すると、参照の局所性が向上しませんか?

4

1 に答える 1

0

静的ストレージで遅いのは、静的フィールドへの読み取りまたは書き込みだけです。静的フィールドからコレクションインスタンスまたはシングルトンインスタンスのいずれかを取得した後は、パフォーマンスに違いはありません。これでオブジェクト参照があり、静的ストレージにはもう触れていません。

静的フィールドから参照されるオブジェクトのメモリは、そのフィールドに格納されないことに注意してください。ヒープに格納されます。それへの参照のみが静的ストレージです。

静的ストレージとインスタンスストレージのパフォーマンスの違いも非常に小さいです。

さて、何が速いのですか?シングルトンインスタンスのバリアントは、コレクションに到達するために1つではなく2つのメモリディファレンス操作を通過する必要があるため、低速です。

于 2013-01-02T13:21:37.840 に答える