スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ClipStudioの「lipファイルの最適化」をコマンドラインで行ってみる

 まず最初にお断り。
 この記事は技術的な好奇心を試してみた、いわゆる「やってみた」系の内容でして、万人向けの小ネタとかじゃありませんので、トリビア的に知りたい人向けです。

 クリスタのlipファイル保存には、最適化というモードがあります。
 前にクリスタのlipファイルはsqlite3のDBファイルだよと書いた記憶がありますが、この最適化処理はsqlite3のvacuumという機能だろうと思っています。
 これは凄く乱暴に言うとレイヤーを作ったり消したりしているうちにlipファイルの中で余分な余白が出来てしまうので、その余白を詰めて順番に書き直す作業です。
 この余白はなんで出来るかというと、おそらくだけどクリスタはlipファイルを上書きする際、消えたレイヤーのデータがあった場所には「このデータはもう使ってないよ」という印をつけるだけで再利用しないんじゃないかなと、そのほうがファイルを書き換える量が少なくて済むしね。
 なのでレイヤーを作って統合して~を繰り返すような使い方をしているとどんどんlipファイルが大きくなる。
 それを詰め直すのが最適化だろうと思います。
 昔firefoxの起動が遅くなったらDBファイルを最適化すると速くなる、という話がありましたがあれと同じことをしているんじゃないかなと。
 
 んじゃクリスタを使わずsqlite3を使って最適化出来るんじゃない?というのが今回の趣旨。

 まずsqlite3を用意して適当なフォルダに展開して、400MB程度のlipファイルに対してvacuumとreindexを実行。
 で結果がこれです。
csp_vacuum.jpg


 クリスタで最適化したものとsqliteでvacuumしたものはほぼ同じになりました。
 この後、vacuumしたものをクリスタで開きましたが、一応開くことが出来ました。

 ただよく見るとvacuumしたほうが小さくなっています。
 小さくなっていることは良いことのように思えますが「本当は必要な情報まで削ってないのか?」という不安があります。
 クリスタの最適化はvacuumした後にまた何か情報を付加してるのかも、とか、用いているsqlite3のバージョンが違うからとか、いろいろ考えられますが、答えはセルシスさんのみが知る、という感じです。

 ちなみにファイルを開く速度も一応計ってみました。
 全部のファイルをSSDにコピーして、D&Dしてから画像が表示されるまでの時間をストップウォッチ片手に目測で計測。
 結果はどれも7秒から8秒と手動による誤差程度の差しかありませんでした。
 試した環境は次の感じ。
 win7 64bit Nehalemなi7-870 メモリ 16GB。
 Mac mini Late 2012(ivyのi5) MacOS X 10.8 メモリ16GB(こっちは内蔵HDD)。
 どちらもほぼ差なし。
 i5とi7で差がないですが、世代が2世代くらい違いますしメモリもMacのほうが速いのを使ってるので、そこら辺でとんとんになっているのかなと思います。

 まとめですが、大きな差が無い以上、出来る事なら最適化はちゃんとクリスタでやった方が安全です。
 万が一やってみるとしてもバックアップをちゃんと取っておくことをお勧めします。

 これを実行する場合はそうだなぁ、現在のクリスタEXだとページ管理下にあるlipファイルを最適化保存するとファイル名が変わってしまって管理ファイルとの紐付けがおかしくなる、という話も聞きますので、これらのファイルに対してどうしても最適化をかけたい、とか、大量のlipファイルをバッチでかけたいとかそういう特殊な事情がない限りは出番がない事だと思います。

 最適化で紐付けがおかしくなるのはおそらく今後正式のほうで対応するでしょうから素直に待った方が良いと思います。
 ほんとこれは「やってみた」という域を出ない話でした。
スポンサーサイト
プロフィール

水玄ソバ

Author:水玄ソバ
下手の横好き。

MIDPINE名義はこちらへ。
SOBaLOG


suigensobaをフォローしましょう

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。