Delphi 10.2 exe'leri 100mb'ın üstünde mi oluyor !!?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
dkadir
Üye
Mesajlar: 40
Kayıt: 04 Oca 2014 06:44

Re: Delphi 10.2 exe'leri 100mb'ın üstünde mi oluyor !!?

Mesaj gönderen dkadir »

var hocam mesela şunu deneyebilirsin.
Önce projeyi derle boyutuna bak.
sonra Project -> Options -> Delphi Compiler -> Linking -> Debug Information da bulunan tiki kaldır.
sonra Project -> Options -> Packages -> Runtime Packages -> Runtime Packages (All Configurations - 32 bit Windows Platform) daki tüm package'leri kaldır.
Şimdi Bak. ciddi oranda düştüğünü göreceksin.
Daha da çok azalsın diyorsan Proje tamamen bittiğinde 3. parti yazılımlar var mesela ASPACK gibi.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Delphi 10.2 exe'leri 100mb'ın üstünde mi oluyor !!?

Mesaj gönderen ertank »

Merhaba,

Yaklaşık 20 yıllık gelişimi birkaç dakika içinde yapınca bu gibi tepkiler doğal olabiliyor.

Delphi 10 ile Delphi 7 arasında çok büyük gelişmeler var. Bunların en önemlisi unicode desteği ki bu bile tek başına EXE boyutlarını iki kat veya daha fazla artmasına neden oluyor. Bunun dışında Delphi 7'de bulunmayan ancak Delphi 10 içinde olan standart fonksiyon ve prosedürler de EXE boyutunu arttırıcı unsurlardır. Bunlar için yapılabilecek birşey yok.

Diğer taraftan sizin kontrol edebileceğiniz bir konu olarak her bir form içindeki "uses" kısımlarını inceleyin. Kullanılmayan ama orada olan üniteler EXE boyutunu ciddi derecede arttırır. Bazen bir bileşen ile deneme yapılıyor. Olmadığı zaman diğer bir bileşen ile sorun çözülebiliyor. Ancak ilk bileşene ait artık gerekmeyen üniteler halen uses kısmında kalmış oluyor. Maalesef, Delphi bu konuda halen bir çözüm getirmedi. Lazarus ise uyarı olarak kullanılmayan üniteleri derleme sırasında bildirmektedir.

Delphi sışında bir çözüm olarak EXE boyutlarını daha makul seviyelere düşürmek için aşağıdaki ücretsiz uygulama kullanılabilir.
https://upx.github.io/

Şunu da unutmayalım. Delphi 7 zamanındaki Windows işletim sistemi boyutları ile günümüzdeki Windows işletim sistemi boyutları da ciddi artış göstermiştir. Delphi 7 zamanıda halen kullanılıyor olan Windows 3.1 7 adet 1.44mb disket ile kurulabiliyor idi. Windows 95 CD ile kurulmaya başlandı. Yakında ise DVD kapasiteleri yetersiz kalmaya başlayacaktır.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Delphi 10.2 exe'leri 100mb'ın üstünde mi oluyor !!?

Mesaj gönderen ertank »

fatihbarut yazdı: 06 Eki 2017 12:03 daha önce de söylediğim gibi uses çözüm olmadı, ben aslında belki delphi compiler'ın kendine özgü sıkıştırma kabiliyeti eklendi mi son versiyonlarda bunu merak etmiştim.
Uses kısımları ile ilgili dikkat ederseniz sadece DevExpress skin ünitelerinden bahsetmemiştim.
Bilgim dahilinde derleyiciler sıkıştırma yapmaz. Sadece optimizasyon sayesinde boyut düşürme sağlayabilirler.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Delphi 10.2 exe'leri 100mb'ın üstünde mi oluyor !!?

Mesaj gönderen ertank »

fatihbarut yazdı: 06 Eki 2017 12:30 Aspack de bir 2/3 kazandırınca boyut yine 10mb a döndü :)

yalnız bu aspackle ilgili iki şey aklıma takıldı.

- Program kodlarına ve işlevselliğine zarar verir mi?

- Programı yavaşlatır veya aksine hızlandırır mı?
EXE sıkıştırma programlarının yaptığı işlem, EXE içindeki data bölümünü sıkıştırmaktır. Yani sizin TLabel.Caption, TEdit.Text vb bileşenlere yazdığınız yazılar, bileşenlerin özellikleri, Glyph resimleri vb. bilgi sıkıştırılır. Ardından EXE başlangıç kısmı sıkıştırma algoritmasının geri açma kodu ile değiştirilir.

Özletle sıkıştırılmış EXE dosyalar çalıştırıldığı zaman önce hafızaya açılırlar. Bundan sonra esas uygulama çalıştırılır. Anlaşılacağı üzere EXE sıkıştırma disk üzerinde daha az yer kaplamasına fayda eder sadece. Yoksa çalıştırıldıkları zaman sıkıştırmadan önceki boyutlarına geri dönerler, ancak disk alanı değil hafıza kullanırlar.

Program yavaşlatma konusu EXE çalışan bilgisayara göre değişir. Eğer bilgisayar diski yavaş ancak işlemcisi hızlı ise uygulama EXE sıkıştırılmamış uygulamaya göre daha hızlı açılabilir. Ancak çalışma hızı ilk açılış sonrası birebir aynıdır. Genellikle günümüz bilgisayarlarında bulunan disk ve işlemci hızları böyle bir sıkıştırma işlemine gerek kalmayacak derecede yeterlidir.

İşlevselliğe zarar verme ihtimali vardır. Eğer sıkıştırma algoritması hata içeriyor ise EXE hafızaya genişletilir iken bozuk şekilde açılır ise uygulamanın herhangi bir bölümünde normal olmayan hatalar görmek mümkündür.
Cevapla