問題タブ [data-containers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
78 参照

.net - 双方向変換データ用の.NETコンテナ?

高速アクセスのためにメモリに含める必要のある変換テーブルがあります。これまで私は単純なものを使用してHashtableいました。キーは内部コードであり、値は外部コードやその他のメタデータを保持するオブジェクトでした。

次に、逆ルックアップを行う必要があります。つまり、外部コードに基づいて内部コードを取得する必要があります。私は次のオプションしか思いつかなかった:

  1. このルックアップ用に別のコンテナを用意します。冗長性を防ぐために、値として内部コードのみを含むハッシュテーブルを用意します。
  2. 現在使用しているのと同じコンテナを使用し、外部コードをキーとして使用してこれらのオブジェクトを再度保存します(衝突を防ぐためにプレフィックスを付けます)。
  3. キーを使用してデータをプルするのではなく、同じコンテナーに含まれる値を反復処理して、要求されたオブジェクト(O(n)、同じメモリ使用量)を見つけます。

コンテナは遅延読み込みされているため、オプション1と2は通常、最悪のシナリオでは実行されません。

誰か考えますか?そのために使用できる効率的なコンテナがあることを教えてください。

* 編集 *

GCのフレームワークであり、2つの変換配列(ディクショナリ)が必要であるという事実を受け入れると、次のコード行は、実際には1つのオブジェクトのみをメモリに格納し、次に2つの異なるポインタの下にそのオブジェクトへの2つのポインタを格納することを意味します。ハッシュ化されたセル?

Itamar。

0 投票する
1 に答える
61 参照

performance - 違いがないように見えるのに、DataContainer または DataContext で Dispose を呼び出す必要があるのはなぜですか?

DataContainer オブジェクトに対して Dispose を呼び出す場合と呼び出さない場合のメモリと速度の違いを調べる簡単なテスト プログラムを作成します。

ここで私のテストプログラム:

どちらの方法でも結果は同じです。私の PC での結果は、約 27.22 秒で、約 37.7 MB のプライベート メモリ サイズでした。

違いがないのに、なぜ DataContainers の Dispose を呼び出す必要があるのでしょうか。

前もって感謝します。

0 投票する
3 に答える
3773 参照

c# - データをロード/保存する別の方法-シリアル化なし?

Ok。シリアル化などの使用方法は知っていますが、それはシリアル化属性でマークされたオブジェクトにのみ適用されるため、たとえば、データをロードして、シリアル化を使用せずにアプリケーションで使用するにはどうすればよいですか?データファイルを言います。

または、シリアル化されていないファイルを保持するシリアル化されたデータコンテナを作成します。

私が使用した方法は、バイナリシリアル化とXMLシリアル化です。未知のデータをロードし、おそらくそれをC#で使用できる他の方法はありますか?

0 投票する
2 に答える
467 参照

php - 動的プログラミングの遅延評価コンテナ?

私にはうまく機能するパターンがいくつかありますが、仲間のプログラマーに説明するのが少し難しいです。根拠や参考文献を探しています。

私は個人的に PHP を扱っていますが、これは Java、Javascript、C++、および同様の言語にも適用できます。例は PHP または疑似コードになります。

アイデアは、中間結果に遅延評価コンテナーを使用して、同じ中間値の複数の計算を回避することです。

「動的プログラミング」:

http://en.wikipedia.org/wiki/Dynamic_programming

動的計画法のアプローチでは、各部分問題を 1 回だけ解こうとするため、計算回数が削減されます。特定の部分問題の解が計算されると、それは保存または「メモ化」されます。次に同じ解が必要になったときに、単に見上げられる

遅延評価コンテナー:

同様のコンテナーが、依存性注入コンテナー (DIC) などとして使用されます。

詳細

私は通常、これのいくつかのバリエーションを使用します。

  • データ計算メソッドとは異なるオブジェクトに実際のデータメソッドを含めることは可能ですか?
  • ネストされた配列を持つキャッシュを使用して、パラメーターを持つ計算メソッドを持つことは可能ですか?
  • PHP では、メインの検索メソッドにマジック メソッド (__get() または __call()) を使用できます。クラス docblock の "@property" と組み合わせると、各 "仮想" プロパティの型ヒントが可能になります。
  • 通常のメソッドと区別するために、「get_someValue()」のようなメソッド名をよく使用します。「someValue」は実際のキーです。
  • データ計算を複数のオブジェクトに分散して、ある種の関心を分離することは可能ですか?
  • 一部の値を事前に初期化することは可能ですか?

編集:質問

Spring @Configuration クラスのかわいいメカニックについて話している素敵な答えがすでにあります。

これをより便利で興味深いものにするために、質問を少し拡張/明確化します。

  • 動的計画法から中間値を保存することは、これの正当な使用例ですか?
  • これを PHP で実装するためのベスト プラクティスは何ですか? 「詳細」の一部は悪くて醜いですか?
0 投票する
0 に答える
985 参照

mysql - Docker - 同じボリュームのデータのみのコンテナーを使用する MySQL コンテナー

現在、データのみのコンテナーから同じボリュームを使用する複数の MySQL コンテナーを実行する方法を理解しようとしています。最初のコンテナを実行してそこにデータベースとレコードを正常に作成した後、別の新しい MySQL コンテナを実行しようとしたところ、次のエラーに直面しました。

コンテナーを使用して、さまざまなポートをホスト 3306 にマップしました。どうしたの?oO