0

Web ブラウザーで常に表示および更新されるログにデータを書き込む C++ でタイム クリティカルなアプリケーションを作成しています (これを変更することはできません。別のソリューションを使用することはお勧めしません)。

現時点では、データをダンプするために 100 ミリ秒ごとに次のようなことを行います (ダンプごとにファイル全体を書き換える必要があります)。

ofstream log_file(log_path);
//Do some error handling
log_file << "Quite some data" << endl;
log_file.close();

問題は、プログラムがログを開くのに約 20 ミリ秒程度の数回の呼​​び出しが必要であり、一部のシステムでは hdd の使用量が多いように見えることです (hdd は、再オープンプロセスごとにファイルを再度探していると思われます)。

ファイルハンドルを常に開いたままにして、システムがファイルへのポインタを保持して遅延と hdd の使用を最小限に抑える方法はありますか? 必要に応じて、別の Write-API にも喜んで切り替えます。

4

1 に答える 1

1

などのメモリ内ファイル システムにログ ファイルを保存できます/dev/shm。これにより、ログ ファイルが大きすぎてディスクに収まらない場合を除き、ディスクへのアクセスが回避されます。

于 2012-10-10T10:57:55.913 に答える