問題タブ [ramdisk]
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でRAMディスクを作成するにはどうすればよいですか?
PythonでRAMディスクを作成したい。クロスプラットフォームの方法でこれを実行できるようにしたいので、Windows XP-to-7、Mac、およびLinuxで動作します。通常のドライブのように、できればドライブ文字/パスを使用して、RAMディスクの読み取り/書き込みができるようにしたい。
これが必要な理由は、特定の構造を持つディレクトリを作成するスクリプトのテストを作成するためです。ramdiskにディレクトリを完全に作成したいので、テストが終了した後、ディレクトリが完全に削除されることを確認します。Pythonを使用することを検討しtempfile
ましたが、テストが途中で停止する場合、ディレクトリが削除されない可能性があります。テストの途中で誰かがコンピューターのプラグを抜いても、完全に削除されていることを確認したいと思います。
java - java.io.* API で使用する Java RAM ディスクを作成できますか?
基本的に、さまざまな種類のファイルとサブディレクトリを含む出力ディレクトリを作成するサードパーティのライブラリを使用しています。出力が正しいことを確認するための単体テストを作成できるようにしたいと考えています。
ライブラリが実際のディスクプレートにまったく触れないように、RAMディスクでライブラリを使用できるようにしたいと思います。アイデアは、テストの実行とクリーンアップを非常に高速にすることです (RAM ディスクを削除しますか?)。
私が利用できる最も顕著な 2 つのオプションは、Commons VFSとJSR 203です。Commons VFS クラスではなく、java.io.* API を使用して透過的に動作させたいので、前者は役に立ちません。私はJDK 6(JDK 7の一部であるはずです)で間に合わせる必要があり、とにかくJava.io.*とシームレスに動作するかどうかわからないため、後者はそれをカットしません(私はしませんそれに賭ける)。
他の解決策もありますが、Commons VFS を使用できないのと同じ理由で使用できません。問題のライブラリの複雑さのため、モックは問題外です。
私の Linux マシンでは、簡単に RAM ドライブを作成し、ディスク上のファイルと同じように java.io.* API を使用できます。問題は、クロスプラットフォームであり、より具体的には、ディスクのセットアップを外部のものではなく、テスト手順の一部にしたいということです。
では、標準の java.io.* API で使用できる Java で RAM ドライブを登録する方法はありますか?
r - MatlabとRの間で大規模なデータセットを共有する
MatlabとRの間でデータを共有するための比較的効率的な方法が必要です。
SaveRとMATLABR -linkを確認しましたが、SaveRは最初にMatlabのバイナリデータをテキスト文字列として フォーマットしてからASCIIファイルに出力します。これは大きなデータセットには効率的ではなく、MATLAB R-linkはWindowsでのみ機能します( COMベースのインターフェイス)。
アップデート:
Dirkは、 SaveRやMatlabR -linkよりもこの問題のより良い解決策のリストを投稿しました。また、最近RAMディスクについて学び(いくつかの実装例についてはこことここを参照)、MatlabとR(または同様の計算環境)間で大規模なデータセットを共有するタスクをさらに容易にする可能性があると考えました。これは私を次の質問に導きます:
データがMatlabまたはRのネイティブデータコンテナー内のマシンのメモリに収まると仮定します。
これまでにリストされたソリューションのいずれかがRAMディスクにより適していますか?
二次ストレージソリューションの代わりにRAMディスクを扱うときに考慮すべき追加の考慮事項はありますか?
ありがとう!
c# - ディスクに書き込むレガシ アプリとリアルタイムで読み取るアプリ (.NET) でファイル IO を削減する方法
私の状況では、1秒ごとにデータをディスクに書き出すコードを持っていないレガシーアプリがあります。ディスクに書き込まれたものを毎秒読み取り、データを使用する、作成したC#プログラムがあります。データは、作成前にファイル名を知っているいくつかのテキスト ファイルに書き込まれます。
問題は、このレガシ アプリと私のプログラムを実行している仮想マシンが多数あることです。RAM や CPU による制限はありませんが、ファイル io のボトルネックのため、マシンごとに 10 個を超える VM を追加することはできません。
RAMなどに存在するディスク上にファイルを作成する簡単な方法はありますか? 名前付きパイプがオプションであると聞いたことがありますか?
ありがとう!
winapi - 物理 RAM が imdisk を RAM ディスクに割り当てる量を知る方法
最近、私は imdisk http://www.ltr-data.se/opencode.html/#ImDiskを使用しています。 次のコマンドで 1 GB の RAM ディスクを作成しています: imdisk.exe -a -t vm -m V: -s 1024M -p "/fs:NTFS /q /y /v:Name /c" この RAM ディスクの物理 RAM の容量を知りたいです。しかし、それはラムディスクがファイルでどのように満たされているかに依存しているようです. 数MBから始まり、コピーするファイルごとに増加します。これらのファイルを削除しても、必要な物理 RAM の量は減りません。そのため、正しく表示されないため、GetDiskFreeSpaceEx を使用して物理 RAM の量を取得することはできません。また、プログラムのドライバーを通常のプログラムとして見ることができないため、そのサイズを測定できました。
著者と話をしたところ、彼は次のように述べています。
さて、あなたは物理メモリについて話していました。カーネルアドレス空間について話していました。ImDisk は、RAM ディスクの 1 つのアドレス ブロックにすべてのメモリを一度に割り当てるため、動的な割り当てなどはありません。
このアドレス空間が特定の瞬間に使用する物理メモリの量を判断する唯一の方法は、特定のメモリ ブロックのコミット/物理値を報告する文書化されていない API がある場合だと思います。ただし、そのようなAPIは知りません。
しかし、誰かが方法を知っているかもしれません...視覚的にだけでなく、プログラムでその数を取得することを意味します。
database - RamDisk 上の PostgreSQL: work_mem のサイズなど?
WindowsのRAMディスクでPostgreSQLを実行して実験しています。私が行った方法は、単純にデータ ディレクトリを ramdisk に配置することでした。
特定のベンチマークを実行しなくても、パフォーマンスは素晴らしく、CPU バウンドのみのようです。私の質問は、work_mem、shared_buffers などの最適な値は何でしょうか?
データベースが RAM にある場合でも、多くのクエリを実行するのに 30 分以上かかります。したがって、テーブルにインデックスを作成する意味があるかどうかは疑問です。もちろん、インデックスはRAMにとどまる必要があります。私は PostgreSQL をデータ ウェアハウスに使用していることに言及しておく必要があります (小さいものですが)。
編集: DataRam.com の RamDisk ユーティリティを使用していることに言及する必要があります。RAMディスクを構成するときに、時々ブルースクリーンが表示されるだけで、確立されたときは表示されません。これはノスタルジックなアイキャンディーだと思います。;)
windows - Windows アプリに独自のファイル キャッシュを実装する意味はありますか?
28 バイト レコードのデータファイルを参照する Delphi アプリがあります。ファイルは順次書き込まれますが、ランダムに読み取られます。データファイルは N 個の物理ファイルに分割され、ディスクの問題に対する保険を提供するために 10 MB 程度でロールオーバーされます。これは、最新のファイルにのみ書き込みを行うためです。大きくなることを許されました。起動時に、ファイル セット全体を読み取り、インデックスを作成して、与えられた仮想レコード番号からどのファイルを探すべきかをすばやく知ることができます。
N 個のファイルへの分割の一環として、読み取りキャッシュを実装しました。Windows が独自にかなりの量のキャッシュを実行していることに気付きました。自分とディスク ファイルの間に別のキャッシュを追加することで、何か得られるのではないかと思います。
どんな考えでも大歓迎です。
java - RAMディスク上のEhCache BigMemoryとDiskstore
Enterprise Ehcache の BigMemory のパフォーマンスは、RAM ディスクで使用される Ehcache Community Edition の Diskstore と比較してどうですか?
Big Memoryを使用すると、オブジェクト ヒープ内のすべての RAM を使用した場合に、GC のオーバーヘッドを削減することで、キャッシュがオブジェクト ヒープ外の追加の種類のメモリ ストアを使用できるようになります。シリアライゼーションとデシリアライゼーションは、このオフヒープ ストアからの書き込みと取得で行われます。
同様に、Diskstore もシリアライズされたオブジェクトをディスクに格納する 2 次キャッシュです。
上記のリンクでは、オフヒープ ストアは Diskstore よりも 2 桁高速であることが言及されています。RAM ディスクにデータを保存するように Diskstore を構成するとどうなりますか? BigMemory にはまだパフォーマンス上の顕著な利点がありますか?
BigMemory によって行われるその他の最適化はありますか? 2 つのアプローチを比較するような実験に出くわした人はいますか?
build-process - RAMDiskの信頼性
私は既存のRAMDiskの議論を見ていました...そして、信頼性の問題を引き起こすものはないようです。私は最近、ソースコードにDataram ramdiskを使い始めましたが、心配すべきリスクがあるかどうか疑問に思っています。
コンパイル時間が30%高速化されました
windows - Windowsでメモリの一部を仮想ファイルとして使用することは可能ですか
コマンドライン ツールを使用してファイルを処理しています。問題は、このファイルをディスクに保存しないことです (セキュリティ上の理由から)。それで、Windowsでメモリの一部をコマンドラインツールからアクセスできる仮想ファイルとして使用して、実際の物理ファイルであるかのように使用できるかどうか疑問に思っていました。