コミケ告知

サークル活動の詳細は circle タグの記事へ。
2016年1月22日金曜日

一時ファイルのサイズはどこまで許容されるのか

ここで一時ファイルとしているのは、linuxなら/tmp、Windowsなら%TMP%および%TEMP%のことです。特にWindowsだと、GetTempPathのように安直にパスを得られて、気軽に使えます。

遭遇した問題 

昔かなり遊んでいた音楽ゲームにbeatmania IIDXというものがありまして、そのクラウドバージョン、PC上でプレイできる beatmania IIDX Infinitasというサービスが始まりました。トライアル版が無事動いたので、さっそく製品版を遊んでみようと思ったんですが、インストール中にエラーが出るんです。
何度やっても同じところで停止。そんな重大不具合ならば騒ぎになるはずですが、Twitterで検索してもそんな話は出てこない。つまり、こちらの環境の問題である可能性が極めて高くなりました。インストーラーの動作中にディスクの書き込みを監視すると、どうやら一時ディレクトリに書き込んでいる…
そのサイズ、3GB弱。マジか。明らかに曲データが入っているでしょうから、今後サービスが継続していくにつれ、どんどん大きくなっていく可能性もあります。うちのメインPCでは、テンポラリはRAMディスクに割り当てているので、こんな大きなサイズは入りませんでした。

# 追記: 本件はset %TMP%して実行することで回避は可能っぽいけども、エラーが発生しました!としか出ないので、そこそこ詳しい人でないと解決できなそう。

一時ディレクトリは何GBあればよいのか

デフォルトではWindowsではシステムドライブ、Linuxも律儀に分けていなければ、/binや/usrなどと同じパーティションになるのではないかと思います。HDDにどかんと置いている場合には問題にならないでしょうが、うちのようにRAMディスクを割り当てている場合、システムSSD+HDD構成でシステムドライブの容量が限られている場合などは問題になる可能性がありそうです。
果たして一時ディレクトリにどのくらいまで置いていいのか、という議論は、あまり見たことがありません。適当にGoogleで検索すると、ユーザー側の対処がたくさん引っかかって難しい。はたして、どれくらいまで置いてよいものでしょうね?

さらに追記