3

テキストファイルから入力を受け取り、出力テキストファイルを生成するコマンドラインexeがあります。複雑な産業シミュレーションに使用されます。

このexeファイルのソースコードは古くからあります。これで、このexeの実行を制御し、Webサービスを介して外部アプリにリンクする.NETラッパーを作成するのは簡単でした。

残念ながら、新しい要件は、このブラックボックスモデルに対して最適化を実行することです。現在、ブラックボックスの最適化を実行するためのさまざまな方法がありますが、それらはすべて、実行可能ファイルを数千回(数百万回?)呼び出す必要があります。ディスクベースのテキストファイルの作成と解析がシミュレーションプロセスのボトルネックであることは明らかです。

とにかく、この実行可能ファイルをだまして物理ディスクに書き込まないようにすることはできますか?Unixを使用している場合は、パイプでうまくいくと思いますが、展開サーバーはWindowsServer03です。

ラムドライブがこの問題を解決するかもしれないと思いましたが、MS-DOS 6以降、それらの1つで遊んだことはありません。一見の価値のある商用製品はありますか?コードを介して物理ドライブをエミュレートするための他のアイデアはありますか?.NET3.5を使用しています。

4

4 に答える 4

1

フリーウェアバージョンのRAMDisk

Microsoft版

方法

于 2009-12-23T10:25:40.040 に答える
0

仮想マシンで実行する場合、仮想ディスクのキャッシュはホストOSの責任です...つまり、WindowsサーバーをVM内で多かれ少なかれ何でも実行し、追加のキャッシュレイヤーを取得できます。それは環境で機能しますか?

于 2010-01-01T07:04:49.557 に答える
0

Windowsでも出力のパイプ処理が可能です。実行可能ファイルが標準出力に対してのみ出力を生成する場合は、それを使用できます

それが実際にファイルに書き込む場合:Windowsはファイルシステムの書き込みをキャッシュするので、単純に書き込んでから小さなファイルを削除するのは、RAMディスクとほぼ同じくらい速いと想像できます。実行後にすべての出力を削除して、実際に現実的な速度でプログラムを実行しようとしましたか?CPU使用率とディスクキューを監視している場合は、単純な古いディスクキャッシングで十分かどうかを判断する必要があります。

于 2009-08-31T06:34:44.877 に答える
0

Vistaで実行している場合は、市販のRamdisk製品が適している可能性があります。システムがすでにほとんどのメモリを使用している場合は、ページスワッピングをやりすぎないようにするために、x64バージョンが必要になる場合があります。

もう1つのオプションは、15000 RPMディスクまたはSSD(ソリッドステートディスク)に少額の現金を使うことですが、RAMディスクよりも低速になります。

長期的には、ボトルネックを回避するために、処理ツールをリバースエンジニアリングして最初から書き直す方が安価な場合があります。

于 2009-08-31T06:46:05.463 に答える