DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

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

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

VCLはいかにして、usesして容量がでかく


  ∧,,∧  どもで~す
 ミ,,゚Д゚彡
 ミつ[|lllll]).
~ミ   ミ
  ∪''∪


さてっと、
正直、Blogの更新より、EmEditorの開発をがっつり優先してみたんですよ。

いやあ、萌える萌える。

Delphiソースで自在にEmEditor機能拡張できるのは便利でたまりません。

2chのEmEditorスレ(リンクは自分で探してみてくれ)を
見ていただいてもわかるとおりですが
Vista対応などに追われつつ、(VistaのUACとかは相当、面白くない仕組みですな)
かっ飛ばして開発してみたので、ちょと一休みしたいっす。

みなさん、関数で文字列を処理させたりするコード、書くのって
比較的簡単でしょ?自在にできますよね。
それが、手馴染みのエディタの機能増強できるので
いつも使う道具がより便利になっていく。味わい深い喜びでぜ。
(前も同じ事言ったっけな?)

TEditor系のエディタでPPAで実装しているのとかも、そういう感じ?
楽しいですよね。

こうやって、Blogを描くにも、より便利になってきました。


さて、そいつを作るうえでのちょっち濃いいDelphiのお話。

そもそも、VCL自体が肥大化しているので、
EmEditorみたいな、超カリカリチューンナップアプリケーションの
Pluginを作るのには
どちらかというと向いてないわけです。

EmEditor本体と比べると、機能の割にバイナリがでかいでかい、
困ったもんです。

VCL使いとしてはここはほんとにしょんぼりします。
すでにVCLは、とんでもなくVersionがあがっていますが
世間でいうところの、VCL 2.0 みたいなものがあったとしたら
usesしただけで、バイナリがでかくなる仕組みだけは
もうなくしてくれ。

それでも、文字列処理に関する開発効率の高さには
C++には無い便利さはあるので(Perlとかに比べたら知らんけど)
便利に使わしてもらうわけですが。

VCLがどういう風にusesしただけでバイナリが増えるのか!

ってことを、検証してみましょう。

何にもない、実装のDLLをつくってみるのです

Delphiで新規でDLLをつくってみようとしてみてください。

こんなソースができます。

library Project1;
{ DLL のメモリ管理に関する重要な....…省略…}
uses
SysUtils,
Classes;
{$R *.res}
begin
end.

ヲィ、なんでデフォでClassesとかusesしてるかな...
必須じゃねーだろ、Classesはヨォ!

凸ミ゚Д゚#彡 ヌッ頃

とか、思うわけですが
このDLLをコンパイルすると、
SysUtilsとClassesのおかげで
Delphi2007では、バイナリサイズが82KB(Delphi2007)でした。

uses無しなら、22KBになり

uses
SysUtils単独なら、48KB、つまり、+26KB
Classes単独は、82KB つまり、+60KB

ということになります。

uses無しのコードなんて

library Project1;
begin
end.

たった3行ですからね。これで17KB(resファイル分が22-17KB=5KBかな)
何も実行されないDLLっていうのは、いったい、どういうバイナリコードなのやら?
と疑問はわきますが、まあ、おいておきます。

usesしただけで、容量がUPする仕組みについては、
私は知っているのですが、説明するのはちょっと冗長なのと
説明できる自信もあまりないので、省略してしまいます。
どっか詳しいサイトとかあります?

Unit中のinitializationにコードがあるからなのですが
誰かうんちくを語りたければ語ってください。

どうして容量が増えるか、わからない人は質問してくださいな。


さて、このネタ、次回からも、ちょっとしばらく続けましょうかね。

Formを新規作成すると現れる
usesに含まれるpasは
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
こんだけあります。

これを、DLLにつっこんで、それぞれをusesしてみれば
どのくらいの容量になるのか、調べられますね。

次回、に続きますよ。

D2007ではなく、過去Versionでも、uses容量をリストアップして
表形式にしたりすると、面白そうですぜ。
スポンサーサイト

| 未分類 | 00:19 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/77-bd9c49f5

TRACKBACK

PREV | PAGE-SELECT | NEXT

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