2017-12-18 14 views
0

一定であるHDRことができ、私はHDR Histogramの非常に基本的な概念を理解するために失敗します。がどのようにヒストグラムのフットプリントが

HDRヒストグラムは、空間と時間の両方で固定費を維持します。ヒストグラムのメモリフットプリントは一定であり、データ値の記録や反復処理に割り当て操作は必要ありません。メモリフットプリントに関係なく、記録されたデータ値のサンプル数の固定されており、単に選択されたダイナミックレンジおよび精度に依存します。

どうということは可能ですか?それとも、単にキューを追加し、全体的なRAMの消費量を増加させながら、それは、反応性キューを使用し、ヒープ内のオブジェクトの新しいインスタンスを作成しないことを意味するのでしょうか?

答えて

1

メモリ固定されるフットプリントと記録時のない割り当ては、単に必要なすべての割り当ては、オブジェクトのインスタンス化の際に起こったことを意味します。

HDRヒストグラムが10'000の値を追跡するとした場合、コンストラクタではすべての10,000個のカウンタが作成されます。

Java sourceを見ると、カウンタはコンストラクタで作成されるlongの値の配列になります。

+0

おかげで、@diginoise。だから、それはスタートアップコストについてですか?私はなぜそれがそのページに言及されていないのだろうかと思います。多分10000の値が何とか遅れて作成されているのでしょうか? – yuranos87

+0

これらは遅れて作成されません。値はコンストラクタで作成されたプリミティブ 'long'の配列に格納されます。ヒストグラムをバックアップするデータ構造全体がこの配列であり、その作成は時間がかかりません。これは、 'N *(長いため8バイト)を占めることになる+オブジェクトheader' – diginoise

+0

は申し訳ありませんが、私は非常に慎重にソースをチェックしていませんでした。ありがとう! – yuranos87