- Delphi XE5 kuranların ilk şikayeti EXE dosya boyutunun büyüklüğü. Ben de merak ettim ve deneme sürmünü kurdum ve dedim ki "AMAN O NE"
- Delphi 2007 ile bünyesinde sadece ve sadece boş bir Form olan bir Proje açtım.
* Şimdi aşağıda Delphi 2007'nin Project / Options / Linker sayfasını görüyorsunuz.
Delphi 2007 için Resimde Gördüğünüz üzere Include Remote Debug Symbols ve Include TD32 Debug Info başlıklarıyla ilgileniyoruz.
-Her iki kutucuk işaretli iken ile,
-Kutucuklardan Include Remote Debug Symbols kaldıralım ama Include TD32 Debug Info başlığı işaretli kalsın dediğimizde boyutlar
aynı kaldılar ve aşağıdaki gibiydi.
Kod: Tümünü seç
Resimdeki gibi her iki kutucuk da işaretli iken build ettiğimizde boyutu : 3.112.567 byte(s) oldu.
Bunu mpress isimli executable file compressor ile sıkıştırınca : 161.792 byte(s) 'a küçüldü.
Kod: Tümünü seç
Boyut inanılmaz azaldı. : 407.552 byte(s) oldu.
Bunu mpress isimli executable file compressor ile sıkıştırınca bakınız : 161.280 byte(s) 'a küçüldü.
- Her ne kadar etkisiz eleman gibi görünse de, bu durum sadece çıplak bir form olduğundandır. İçinde fonksiyon, procedure, type tanımları vs. olsaydı çok büyük olmasa da duruma göre 100-200 kbyte(s) fark edecekti.
Şimdi gelelim Delphi XE5'e
Kod: Tümünü seç
Yeni VCL Proje dedik ve sadece çıplak bir form var. Build ettik sonuç : 10.760.021 byte(s) oldu. !!!
Bunu mpress isimli executable file compressor ile sıkıştırınca bakınız : 544.768 byte(s) 'a küçüldü.
Kod: Tümünü seç
Resimdeki "Debug Information" isimli kutucuğu boşalttık sonuç : 2.104.320 byte(s) geriledi.
Bunu mpress isimli executable file compressor ile sıkıştırınca bakınız : 543.232 byte(s) 'a kadar küçüldü.
kaynak için bkz. Create Smaller Delphi XE Executables: Remove RTTI, Pack EXE
Kod: Tümünü seç
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
Kod: Tümünü seç
{$R *.res}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
Kod: Tümünü seç
Boyut biraz daha azalıyor... Build ettik sonuç : 1.721.344 byte(s) kadar daha geriledi....
Bunu mpress isimli executable file compressor ile sıkıştırınca bakınız : 466.944 byte(s) 'a kadar da küçüldü.
Project / Options / Linking sayfasından Debug Information işaretini kaldırıyoruz.
Her projemizin DPR uzantılı (proje) kaynak dosyasına da aşağıdaki direktifi ekliyoruz. Ben buna bir IF BLOĞU ekleyeceğim.
- Bugünlerde aynı projeyi Bir Delphi 2007 bir de Delphi XE5'de derlemek isterseniz bu direktifler yeni olduğundan Delphi 2007'de hata verecektir.
- Neden buna gerek duyayım ? sorusunu duyar gibiyim, açıklayım. Mesela birisi forumda soru sordu. Siz de XE ile derleyip örnek cevap hazırladınız. Bunu paketleyip yolladınız. 2007'si olan yazılımcı derlerken hata alacaktır. Tabi XE5 kullanmadığı için nedenini de kavrayamayacaktır.
bkz.Turbo Pascal 4.0'dan başlayıp XE5'e kadar olan tüm Delphi Sürüm Tanım Kodları
Kod: Tümünü seç
// VER260 Delphi XE5'in sürün tanımıdır.
{$IfDef VER260}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{$EndIf}
Bitti