LoginSignup
0
0

More than 3 years have passed since last update.

Mcomixの画像キャシュ効率化

Last updated at Posted at 2020-03-17

はじめに

mcomixは漫画等が非常に読みやすいもののpython2であること、そして画像一時ファイルが/tmp以下に作られてしまいHDDアクセスが著しい。
そこで、python3ベースでforkしているmcomixに手を加えて画像キャシュの効率化を計った。

環境

Linux Mint 19.3(おそらく他のものでディストリビューションでも問題ない)
git
python 3以上
memory-tempfile2.3.2以上(公式web: https://pypi.org/project/memory-tempfile/)
他はgitのREADME.rst参照

ソースの取得

gitにてソースを自分の作業ディレクトリに移行する。https://github.com/mimaburao/mcomix3.git

$git clone https://github.com/mimaburao/mcomix3.git

ライブラリのインストール

README.rstを参照して必要なライブラリをインストール後、memory-tempfileをインストールする。

$pip3 install memory-tempfile

画像キャッシュのコードを追加

clone上では変更済みになっている。
作業内容としては、
Memoeytempfileのインスタンス(self._tempfile)を作成後、TemporaryDirectory関数を呼び出すと元のコードを流用できる。(以下に修正箇所の抜粋)

mcomix/archive/archive_recursive.py
from memory_tempfile import MemoryTempfile


class RecursiveArchive(archive_base.BaseArchive):

    def __init__(self, archive, prefix='mcomix.'):

        self._tempfile = MemoryTempfile()  #memory-tempfileを使うときのインスタンス
        self._tempdir = self._tempfile.TemporaryDirectory(
            prefix=prefix, dir=prefs['temporary directory'])  #TemporaryDirectoryと同様に利用できる。

問題点

PCの物理メモリにRAMは依存してしまう。通常はdf -hで確認できる。/run/user/なんとか にあるメモリーが利用できる。このメモリーを超えるとディスクエラーが出てしまう。

感想

大本のmcomix1.2.1はソフトウェアとしてインストール出来る。しかし、更新が停滞しているようなのでこうしたforkの方で細かい更新がかかれば幸いである。今回はpython3ベースのmcomixがすでにあったため、画像キャッシュのRAM化が可能となった。
RAMを利用するのは"設定"で出来るようになればさらに使い勝手が向上するだろう。いずれは、大きなファイルはメモリー容量一杯になるまで読み込んで、逐次更新できるようになればRAMで完結するはずである。

参考

Mcomix公式 https://sourceforge.net/projects/mcomix/
Mcomixのフォーク(python3ベース) https://github.com/multiSnow/mcomix3
memoey-tempfile公式: https://pypi.org/project/memory-tempfile/

0
0
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
0
0