真魚のUPX圧縮

1899 letters | 4253 views | コメントする

 真魚の本体である実行形式ファイルは解凍不要のUPX圧縮が施されている。「何の変哲もない」普通の実行形式で拡張子がEXEのファイルなのに、実はアレが圧縮された状態で、起動する度に自動的にこっそりとメモリー上で解凍されているので、普通の人には圧縮されていると言う事すら気付かせない。いちいち毎回裏で解凍してたら起動が遅くなりそうな印象があるけど、ところが逆に速くなるらしいってな事情もあって、毎回UPX圧縮状態で配布してきた。で、やめようと思ってる。



 また今回も「Delphiは特殊で」って話になっちゃうが、Delphi製アプリはバイナリが大きくなっちゃう。これは昔からそういう物だ。で、昔USBメモリーなんてなかったからフロッピーというサイズも意識する必要があって、UPX圧縮するかどうかでフロッピーに入るかどうかが決まるという状態だった頃があり、その頃だったら真魚をUPX圧縮するのはフロッピー起動に対応するためだって事が言えたわけだが、さすがに今はこの理由が通じない。フロッピーではないにしろ、起動するときは記憶媒体からメモリーへと実行ファイルを読み込むので、実行ファイルが大きいよりは小さい方が、その読み込みの時間を節約出来る。読み込みの時間が長いか、メモリー上で解凍する時間が長いかってことが起動速度を決めるわけで、やっぱりディスクを回して読み込む方が、電気を流すだけの解凍より時間がかかって、UPX圧縮した方が速くなるという現象が起るようだ。でもあたしのパソコンではUPX圧縮してるかどうかで真魚の起動速度に影響を感じたことは一度もなく、たぶん、もう少し大がかりなバイナリじゃないとそこまでの差は出ないのかも知れない。

 気休めでも速くなるなら圧縮すればいいじゃんって事になると思うが、そりゃ何のデメリットもなければ圧縮した方がいい。まぁデメリットもたいしてないんだけど、メモリー上で解凍してるからメモリーを多く使用するとか、マルウェアによく使われる手法だからウィルス対策ソフトで誤検出されるとか、圧縮しなければ大丈夫だったソフトが圧縮したらおかしくなると言う場合があるかもしれない。些細でも圧縮したせいで何かデメリットがあるわけで、体感出来るメリットを感じない状態でUPX圧縮を続けるべきかって事は常に疑問を持ってきた。まぁ、普通はこれは圧縮しないで配布して、圧縮してメリットがある人が勝手に個人的に圧縮すればいい物だと思うよ。でもずっと惰性で続けてきた物をやめるタイミングが難しい。しかし今ならば、圧縮を行った状態の古いパソコン向け古い真魚を公開しつつ、新しいパソコン向け新しい真魚も公開してるんだから、新しいパソコンには必要ないUPXを新しい真魚には行わないってことに出来るからちょうどいい。

 真魚の目指すシンプルは、使い方が難しくないというシンプルであり、機能を少なくして起動を速くすることではない。新しいバイナリはスペックも新しいパソコンを想定してるから、古いパソコンでは起動が遅くなるような事でも、新しいパソコンで遅くならなければいいと思ってやっている。別に新しいバイナリが遅いとも思っていないが、速い方がいい人はあえて古い方を使い続ければいい。あっちもこっちも完成品であり、ターゲットとしたパソコンのOSやスペックや周辺環境が違うから完成のさせ方も違うって事だ。難しいかどうかの基準はWindows標準の使い方だけで操作出来るかどうかを重視していて、最近のWindowsはオフィス製品もMDIになったし、IEはタブだけどタスクバーからもタブの切り替えに対応だから、真魚もそれに合わせた。それが難しくないと言う事でありシンプルと言う事だ。そういう意味で最近いっそうシンプルにしたせいで、テストしてないけど昔のXPとかでは遅くなってるかも知れない。UPX圧縮をやめれば古いパソコンでの動作がさらに遅くなるかも知れない。いいんだよ、そっちは向いてないから。今でも真魚は自分(玄人?)でも使えて嫁(素人!)でも使えるモノを目指してるし今後も不変だろうが、自分は趣味で、嫁は壊してパソコンを次々に買い換えてるので、古いパソコンを意識したようなUPXとかはもう要らないし、他にもどんどん変えていく。変えていくのはターゲットのパソコンであり、ターゲットの人は一切変わらない。嫁が永遠に素人だからな。あ、でもいつか離婚はするとおもうからその時は知らん。

たぶん関連のある記事:

コメントは終了しています。