area[nothing]: opera.dll パッチとUPX for arm/peでUPXで圧縮すると、実行時に元のDLLのサイズ分余計にメモリ消費されると書かれてあったので、検証してみました。
UPXについては、実行ファイルサイズを小さく出来る UPXをご覧下さい。
◆間違った検証方法◆
前の記事で圧縮したソフトの、圧縮前と圧縮後のメモリ消費量をITaskMgrのTaskタブで確認しつつ調べてみました。
Opera(opera.dll) 圧縮前:0KB 圧縮後:2172KB
→(タブを3つ開いて、google、yahoo、exciteを表示)
NetFront(NetFront33.exe) 圧縮前:2311KB 圧縮後:2311KB
→(タブを2つ開いて、google、yahooを表示)
Skype(Skype.exe) 圧縮前:736KB 圧縮後:736KB(ログインしただけ)
GSPlayer(GSPlayer2.exe) 圧縮前:88KB 圧縮後:88KB
Resco Pocket Radio(Radio.exe) 圧縮前:3220KB 圧縮後:3220KB
◆正しい検証方法◆
tnjさんからのご指摘いただいたのですが、ITaskMgrのTaskタブで確認出来るものはプログラム領域のメモリ消費量までは見てないのではという事でした。CPUタブでは確認可能という事でしたので、その方法で同じように検証してみました。
このように検証しました。
1.ITaskMgrを起動してCPUタブのMemory usedで消費メモリを確認(AKB)
2.検証対象ソフトを起動して同じ方法で消費メモリを確認(BKB)
3.BからAを引いた数がそのソフトを起動した時の消費メモリとなる。
4.ソフトを圧縮したものと入れ替えて、1~3の手順で消費メモリを調べる。
Opera(opera.dll) 圧縮前:3460KB 圧縮後:9284KB
→(タブを3つ開いて、google、yahoo、exciteを表示)
NetFront(NetFront33.exe) 圧縮前:4432KB 圧縮後:8172KB
→(タブを2つ開いて、google、yahooを表示)
Skype(Skype.exe) 圧縮前:4448KB 圧縮後:8488KB(ログインしただけ)
GSPlayer(GSPlayer2.exe) 圧縮前:488KB 圧縮後:936KB
Resco Pocket Radio(Radio.exe) 圧縮前:3444KB 圧縮後:4156KB
◆結果◆
exeでもdllでも圧縮前よりも圧縮後の方がメモリ消費量が増えるため、元々メモリの少ないPDAで圧縮して使うのはあまりおすすめできません。残りメモリが少なくなると動作が不安定になりますからね(苦笑
UPXについては、実行ファイルサイズを小さく出来る UPXをご覧下さい。
◆間違った検証方法◆
前の記事で圧縮したソフトの、圧縮前と圧縮後のメモリ消費量をITaskMgrのTaskタブで確認しつつ調べてみました。
→(タブを3つ開いて、google、yahoo、exciteを表示)
→(タブを2つ開いて、google、yahooを表示)
◆正しい検証方法◆
tnjさんからのご指摘いただいたのですが、ITaskMgrのTaskタブで確認出来るものはプログラム領域のメモリ消費量までは見てないのではという事でした。CPUタブでは確認可能という事でしたので、その方法で同じように検証してみました。
このように検証しました。
1.ITaskMgrを起動してCPUタブのMemory usedで消費メモリを確認(AKB)
2.検証対象ソフトを起動して同じ方法で消費メモリを確認(BKB)
3.BからAを引いた数がそのソフトを起動した時の消費メモリとなる。
4.ソフトを圧縮したものと入れ替えて、1~3の手順で消費メモリを調べる。
→(タブを3つ開いて、google、yahoo、exciteを表示)
→(タブを2つ開いて、google、yahooを表示)
◆結果◆
exeでもdllでも圧縮前よりも圧縮後の方がメモリ消費量が増えるため、元々メモリの少ないPDAで圧縮して使うのはあまりおすすめできません。残りメモリが少なくなると動作が不安定になりますからね(苦笑
私の場合は,CPUタブ内の "Memory Used" 欄で起動前後での差を見てます.プロセスごとの消費量では,多分展開したプログラム領域のメモリ消費は見てない気がします.(ソース見てないので実際のところは分かりませんが)
この場合,圧縮してないopera.dllで1476KB,圧縮後で6804KBとなりました.UPX2.0でも試してみましたが,ベータの頃より圧縮率は上がりましたが,メモリ消費量に変化はありませんでした.
また,やはりEXEでも消費量に変化があります.試しに XnView Pocket で計測しましたが,圧縮前 956KB,圧縮後 1996KBとやはり元の実行ファイル全体をメモリ上に展開して消費しているようです.
#名無しさんのつもりでnoidだったりしました
お名前noidさんだと思ってました(苦笑
後で改めて考えてて検証方法が間違ってる気がしてたのですが、
CPUタブの方で確認すれば正確なメモリ消費量を見れるんですね(汗
同じ方法でもう一度検証し直してみたいと思います。
ご指摘をありがとうございましたm(__)m