/run/shm
(以前は/dev/shm
)にディレクトリを作成し、それをアプリケーションの一時ディレクトリのように使用することは良い習慣ですか?
背景:ファイルとディレクトリを使って多くのことを行うプログラムのブラックボックステストを書いています。すべてのテストで、多くのファイルとディレクトリを作成してからプログラムを実行し、次に予想されるファイルとディレクトリのセットを作成してから、diffを実行して比較します。現在、約40のテストがあり、実行に2秒以上かかっています。スピードアップを期待して、ある種のramdisk上のディレクトリでテストを実行したいと思います。
ram diskについて調べたところ、ディレクトリを作成して一時ディレクトリのように使用しても大丈夫であるとの回答で質問に遭遇しました/dev/shm
。しかし、さらに調べてみると、直接使用するのは誤りであるとdebianのwikiページに出くわしました/dev/shm
。shm_*
関数を使用する必要があります。残念ながら、shm_*
関数はシェルスクリプトで使用できないようです。
今私は混乱しています。一時ディレクトリのように/run/shm
(以前は/dev/shm
)使用しても大丈夫ですか?
/tmp
がよりセマンティックであることを想像します。ユーザーが/dev/shm
一時ファイルに使用して速度を上げるのに十分なRAMを持っている場合は、そこにマウントします。しかし、十分なRAMがなく、そこにマウントすると、すべてのプロセスでスワップファイルを使用するように強制され、コンピューターの速度が低下し/tmp
ます。さらに重要なことのためにRAMを保存し、ファイルシステムに通常のディスク領域を使用します。つまり、/tmp
より調整可能です。
/tmp
共有メモリにマウントします。