3
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ubuntuの一時ファイルをRAMディスクに保存する

Last updated at Posted at 2017-02-01

はじめに

Electronアプリケーションで、Zipファイルでアーカイブされた画像ファイルを表示すべく少しづつ調査しています。
Zipファイルは、ファイル解凍せずに表示することができるのですが、次の問題があります。

  1. 7zip形式のファイルに対応できない。(たぶんrarとかも)
  2. スライドショー表示する場合には、実ファイルの方が都合が良い。
  3. メモリ消費量が大きくなる

一時的に、ファイル解凍した場合気になるのが、HDDの場合はレスポンスで、SSDであれば書き換え回数です。
気にし過ぎかも知れませんが、対策を考えてみました。

RAMディスクを利用する

Ubuntuでは、tmpfsというファイルシステムが利用されています。
名前から察する通り一時的なファイルを置くためのRAMディスクのためのファイルシステムです。
再起動したときには綺麗さっぱりファイルが無くなりますが、オンメモリで読み書きされるためとても高速です。
さらに利用されていない空き容量は、OSが利用できるためメモリ効率も良いようです。
調べてみると/dev/shmが、tmpfsで、利用可能な状態になっています。

環境変数を設定するだけで利用できる

freedesktop.orgという規格があり、準拠したアプリケーションは、環境変数XDG_CACHE_HOMEに、パスが設定されていれば、そこをキャッシュとして利用する約束になっています。
ちなみに、chromeとかもfreedesktop.org規格に対応しているため一時ファイルなどが、RAMディスクに保存されるようになります。

~/.xprofile
# キャッシュディレクトリの指定
export XDG_CACHE_HOME=/dev/shm/.cache-$(whoami)
# 他のユーザは読み書きできないようにする
mkdir -p ${XDG_CACHE_HOME}
chmod 700 ${XDG_CACHE_HOME}

参考:一般ユーザのfreedesktop.org準拠アプリケーション向けキャッシュディレクトリをメモリ上に配置する

環境変数が設定されていない場合には、${HOME}/.cache/が使用されます。

おわりに

Electronのアプリケーションをfreedesktop.org準拠に作成しておけば、ユーザーの設定によって、高速なRAMディスクを選択できそうです。

3
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?