問題タブ [disk-based]
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.
python - Python ディスクベースのディクショナリ
私はいくつかの動的プログラミング コードを実行し (コラッツ予想 =P を力ずくで反証しようとしました)、dict を使用して、既に計算したチェーンの長さを格納していました。明らかに、ある時点でメモリが不足しています。dict
スペースがなくなったときに、その一部をディスクにページアウトするa のバリアントを使用する簡単な方法はありますか? 明らかに、メモリ内の辞書よりも遅くなり、おそらくハードドライブのスペースを消費することになりますが、これはそれほど無駄ではない他の問題にも当てはまる可能性があります。
ディスクベースの辞書はほとんどデータベースであることに気付いたので、sqlite3 を使用して手動で実装しましたが、賢明な方法ではなく、DB 内のすべての要素を一度に 1 つずつ検索しました...約 300 倍遅くなりました。
一度に1つだけをメモリに保持し、効率的な方法でそれらをページアウトして、独自のdictのセットを作成する最も賢い方法はありますか?
c# - C# のディスク バックアップ辞書/キャッシュ
大量のデータをキャッシュするためのソリューションを探しています。
関連する質問ですが、言語が異なります:
別の用語で質問を閉じる:
私は永続性、トランザクション、スレッドセーフなどを必要とせず (または何も支払いたくない)、List<> または Dictionary<> よりも使用するのがそれほど複雑ではないものを望んでいます。
コードを書かなければならない場合は、一時ディレクトリにすべてをファイルとして保存します。
私の場合、インデックスは になりますint
(そして、それらは連続しているか、十分に近い必要があります) とデータは になります。そのため、 PODstring
の両方を処理することから逃れることができ、むしろ超軽量にして正確にそれを行うことができます。
使用法は、合計 650MB の 3k ファイル (ファイル #1 から #3000 のように) のシーケンスがあり、シーケンスの各ステップに対して diff を実行する必要があることです。私はそれがほぼ同じかそれ以上になると予想しており、そのすべてをメモリに保持したくありません(私ができないところにより大きなケースが発生する可能性があります)。
多くの人が私の問題に対してさまざまな解決策を提案しています。しかし、私の小さなニッチをターゲットにしたものはないようです。私がディスク バックアップ キャッシングを検討している理由は、現在の使用量が使用可能なアドレス空間の 1/3 から 1/2 を使い果たすと予想しているからです。大きいケースだとスペースがなくなるのではないかと心配です。トレッド、永続性、または複製については心配していません。私が探しているのは、最小限のコード、最小限の使用フット プリント、最小限のメモリ オーバーヘッド、最小限の複雑さを使用する最小限のソリューションです。
私は楽観的すぎると思い始めています。
java - Java: 高速なディスクベースのハッシュ セット
最大約 2 億の 40 ビット値を格納できる大きなハッシュ セットを格納する必要があります。2 億の 64 ビット値として保存することは許容されます (2 億 * 16 ビットの損失にもかかわらず)。
要件は次のとおりです。
小さなメモリフットプリント(ディスクスペースは問題ではなく、メモリは問題です)
高速
contains(long l)
およびadd(long l)
メソッド (SQL よりもはるかに高速)埋め込み
無料で厄介なライセンスなし (Berkeley DB なし)。LGPL 大丈夫です。
偽陽性も偽陰性もないので、ディスクベースのブルームフィルターなどは私が求めているものではありません
SQL は私が求めているものではありません。
私は本当にこのような速いものを求めていると思っているからです(ソリューションがSQLソリューションよりもはるかに高速であることに注意してください):
Google にはそのような Java API がありますか?
「キー」のみを使用する高速なディスクベースのキー/値ペアの実装は機能しますか?
または、他の何か?
私はむしろ再発明したくありません。
java - Java ディスクベースのキー値ストレージ
次の機能を備えたファイルシステムベースのキー値ストレージの効率的な Java 実装はありますか?
- 一意の ID (ストレージによって割り当てられる場合があります) によるバイト配列の格納、上書き、および取得
- メモリー・キャッシングなし (read はファイル・システムからの読み取りを意味し、write はファイル・システムへの即時書き込みを意味します)
- 最大数テラバイトの合計データ サイズ
- 最大数億の保存オブジェクト数
- ファイル システム オブジェクトの管理可能な数 (ファイル システム レベルでストレージ全体を移動/コピー/削除するため)
Berkeley DB JE はできますか?