問題タブ [in-memory]

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 投票する
1 に答える
324 参照

wpf - メモリに読み込んだJPEGからデータを取得するWPFイメージコントロールを作成するにはどうすればよいですか?

アプリケーションの画像については、画像のsourceプロパティをディスク上のJPEGファイルに設定していますが、次の反復の一環として、画像をメモリに保持して速度をテストしたいと思います。

WPFイメージコントロールに、ファイルからではなくメモリ内のソースから情報を取得するように指示するにはどうすればよいですか?

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

c# - .Netでクリップボードに貼り付けるために、BMPをメモリ内のPNGに変換します

この同様の質問の回答はすべて、ファイルを保存する必要があります。ただし、ファイルを変換してからクリップボードにコピーしようとしています。

ビットマップ (または任意の画像) をファイル システムに保存せずに PNG に変換するにはどうすればよいですか?

更新:
画像をアプリケーション (この場合は Evernote) に貼り付けようとしています。画像をクリップボードにコピーすると (ブラウザ経由など)、その画像形式が記憶され、貼り付けると、まったく同じ形式の画像が作成されます。たとえば、PNG をコピーすると、PNG が貼り付けられます。JPG をコピーすると、JPG などが貼り付けられます。

現在クリップボードにある画像を取得し、必要なサイズにスケーリングしてから、クリップボードに PNG として保持しようとしています。これにより、Evernote に貼り付けたときに PNG が作成されます。

ブラウザで PNG 画像をコピーすると、次の形式が表示されます: HTML FORMAT, CF_BITMAP, . これらの Evernote のどれが貼り付けに使用されているかわかりません。私はそれが.CF_DIBCF_DIBV5CF_BITMAP

貼り付けたときに PNG として扱われる画像をクリップボードに配置するにはどうすればよいですか?

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

caching - データセットのメモリ内キャッシュ

Web サービスでの操作のために、データをメモリ内にキャッシュすることを計画しています。このデータは基本的に、頻繁に変更されない参照値です。そのすべてのデータをデータセット (複数のテーブル) に取得し、DB 側でデータが変更されなくなるまで保存することを計画していました。これは、一部のデータがまったく変更されず、一部のデータが頻繁に変更される可能性があるためです。何か案が?

0 投票する
7 に答える
5916 参照

unit-testing - DB2 のように機能する優れたメモリ内データベースはありますか

現在、DB2 を使用して単体テストを行っていますが、非常に遅い場合があります。DB2 のすべての機能を備えた優れたメモリー内データベースが必要です。このタイプのインメモリ データベースは存在しますか、それとも標準 SQL 機能のみを許可しますか?

ありがとうございました。

EDIT DB2データベースはリモートサーバー上にあるため、テストを高速化するには、そのデータベースのスキーマをローカルのメモリ内データベースに複製するソリューションが必要です。

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

.net - 分散型のインメモリ グラフ DB を探している

この要件のすべて (または少なくともほとんど) を満たすデータベースはありますか?

  1. グラフ指向 - グラフとトラバーサルを保存するために最適化されています (HyperGraphDB、Neo4j など)
  2. メモリ内で実行されますが、永続的なストレージ (Redis など) があります
  3. 分散 (例: メンバーベース)
  4. .NET アダプター (HTTP REST ではなく TCP/IP) があった

それとも私が求めすぎですか?

前もって感謝します。

0 投票する
6 に答える
2575 参照

sql - レプリケーション/クラスタリングをサポートするインメモリSQLデータベースはありますか?

無料で安定したものが勝者です。

私の計画は非常に簡単です。すべてのデータをメモリに入れて、アプリケーションコードを変更せずにクラスターを使用するだけです。次に、永続性を確保するために、通常のディスクアクセスデータベースのノードからデータをダンプするだけで済みます。

唯一のことは、メモリ内ストレージを要求するため、完全なデータ複製の可能性がないということです。DBスキーマのみをコピーしたいのですが、そのインメモリDBがすべての結合を一貫して管理します。

前もって感謝します!

更新:私の要件を満たす可能性が高いオープンソース製品を見つけました。それはVoltDBです。

0 投票する
6 に答える
5771 参照

algorithm - アルゴリズム: 膨大な数の非常にまばらなビット配列。使用するエンコーディング

私には特別なニーズがあり、最も重要な懸念事項は次のとおりです。

  • インメモリ
  • 非常に低いメモリフットプリント
  • 速度

これが私の「問題」です。メモリ内に、非常にまばらなビット配列を大量に格納する必要があります。これらのビットセットは「追加のみ」であり、主に交差に使用されます。巨大とは、200 000 ビット配列という意味です。

各ビットセットの範囲は [0...16 000 000] です。

取得した実際のデータを含む「のみ」10 673 ビット配列を使用して事前テストを実行したところ、次の結果が得られました。

関連する数値を見ると、明らかに圧縮されたビット配列を使用する必要がありますが、それは問題ではありません。ビット配列が「追加のみ」であることを考えると、扱いやすいままです。

オンになっているビット配列のビットは、グループ化されていますが、完全ではありません。そのため、同じ領域でいくつかのビットがオンになる傾向があります (ただし、通常は連続してオンになるわけではないため、オンになっているビットには RLE が適していません)。

私の質問は、どのような圧縮を使用するのですか?

最初のアプローチをここに置くべきか、それとも自分の質問への回答に置くべきかはわかりません。

基本的に、非常に愚かなエンコーディングを使用した「最悪のケース」のシナリオを想像しました。

  • 1 ビット: オンの場合、次の 5 ビットは「スキップ」を計算するために必要なビット数を決定します。オフの場合、最適化: 次の 5 ビットは、文字どおり (つまり、「オン」または「オフ」) に取りすぎるビット数を決定します。 '、スキップなし) [これは、他の表現よりも効率的であると判断された場合にのみ切り替えられるため、開始時には常に最適化されます (サイズに関して)]

  • 5 ビット: 次のビットがオンになる前にスキップできるビット数

  • x ビット: スキップ

例を次に示します。ビット配列には 3 ビット セットがあり、最初のビットは 3 098 137、2 番目のビットは 3 098 141、3 番目のビットは 3 098 143 です。

最初のビットは、ビットをスキップすることを示しています。次の 5 ビット (常に 5) は、スキップするビット数を伝えるために必要なビット数を示します。 22 ビットは、3 098 137 にスキップするように指示します。1 ビットオフは、ビットをスキップしないことを伝えます。次の 5 ビット (常に 5) は、伝えます。 「そのまま」読み取るビット数 6 ビット: オフ、オフ、オフ、オン、オフ、オン 3 098 141 および 3 098 143 がオンなどを意味します。

これらのビット配列の驚くべきスパース性を見ると、これは非常にサイズ効率が良いようです。

そのため、そのエンコーディングを使用して、サンプル データを取得し、「最悪の場合」のシナリオを計算しました (まだアルゴリズムを書いていないので、最初にここからいくつかの入力を取得したいと思います)。また、5 ビットが常に最大値 (24 ビット) に設定されますが、これはもちろん起こりません。

私は、「最悪の最悪」のケースが何であるかについて、非常に大まかな概算を得るためにそれを行いました.

とても嬉しい驚きでした:

データは実際のデータであり、すべてのデータが類似しているため、さらに悪いことに、200,000 ビットの配列を約 240 MB に格納できることがわかっています。これは問題ありません。

実際のエンコーディングはそれよりもはるかに少ないと確信していますが、まだ実際に書いていないので、(非常に簡単に)「最悪のケース」しか計算できないため、そのケースのみを示します。

これをよりサイズ効率的にする方法に関するヒント/アイデア(これらは非常にまばらなビット配列であり、数十万個あり、メモリ内にある必要があり、「追加のみ」になることを覚えておいてください) ?

「追加のみ」のケースについて

基本的に、私は1つの成長する「広がり」(範囲ですが、「広がり」は私が理解している実際の用語です)と、いくつかのビットセットを持つ多くのビット配列を持っています。範囲がたとえば 0 から 1 000 000 になると、すべてのビット配列は 0 から 1 000 000 になります。範囲が 1 000 001 まで大きくなると、すべてのビット配列も 1 ビットずつ大きくなります。ただし、これらのビット配列のほとんどは末尾に「0」が追加され、ビット配列の約 4 ~ 8 には末尾に「1」が追加されます。ただし、どのビット配列に 0 または 1 が追加されるかを事前に予測することはできません。

したがって、すべて同じサイズで、すべて非常にまばらで (ビットセットの < 0.5%)、範囲の拡大に伴ってすべて「成長」しているビット配列がたくさんあります (したがって、それらはすべて常に成長しています)。同じレートで)。


ジュディの配列は素晴らしいです。しかし、私は数年前にそれらについて読みましたが、そのことは「私の頭の上」にありました。Judy 配列は C のみの 20KLOC ライブラリであり、私はそれを再実装するつもりはありません。しかし、彼らは素晴らしいです。

したがって、これらすべてを比較的単純なままにしておきたいと思いますが、これは、非常にまばらなビット配列の特別な「追加のみ」のプロパティを見てそれほど大げさではありません。

0 投票する
4 に答える
1365 参照

r - Rでメモリ内ファイルを読み書きする方法はありますか?

R を使用して大きな DNA シーケンス ファイル (fastq ファイル、それぞれ数ギガバイト) を分析しようとしていますが、これらのファイルへの標準の R インターフェイス (ShortRead) はファイル全体を一度に読み取る必要があります。これはメモリに収まらないため、エラーが発生します。一度に数 (千) 行を読み取り、それらをメモリ内ファイルに詰め込み、ShortRead を使用してそのメモリ内ファイルから読み取る方法はありますか?

R 用の Perl の IO::Scalar のようなものを探しています。

0 投票する
5 に答える
2553 参照

windows - エンタープライズ向けのWindowsインメモリキャッシュ

Windowsのエンタープライズで使用するためのmemcachedアナログを知っていますか。商用のメモリ内キャッシュシステムはありますか?

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

java - Javaのメモリ内ファイル構造?

xsd / xmlドキュメントの解析、Javaクラスの構築とコンパイル、jarクラスとwarsへのパッケージ化、DBでの永続化、OSGiとしてのデプロイなど、リソースを使って多くのことをその場で行う必要があります。

私が使用しているライブラリ/APIのほとんどは、メモリ内でこれらすべての中間タスクを実行できますが、のみで動作する「特別な」ライブラリもありますjava.io.File。そして、私には何も残っていませんが、JavaEE環境では良くない実際の一時ファイルとディレクトリを使用しています。

ノードが拡張されているメモリ内ファイル構造のライブラリ/ソリューションが必要だとjava.io.File思います(私が見ているように)。既知/類似のライブラリへのリンクをドロップしてください。コメントは大歓迎です。

ありがとう!