Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen vkamadan »

Merhaba değerli arkadaşlar ,

Delphi 2010 kullanıyorum derleme seçeneklerinde şablon olarak DEBUG ve RELEASE seçebiliyorum varsayılan DEBUG seçili geliyor , son kullanıcı için derleme yaparken RELEASE olarak derlemez isek DEBUG olarak derlenmiş EXE başımıza iş açar mı ? merak ettim , c++ ta debug ve release derleme sonucunda ciddi boyut farklılıkları oluşuyordu dağıtılacak exe de fakat delphide hiç bir fark oluşmuyor bu tam olarak neleri değiştiriyor acaba..
Volkan KAMADAN
www.polisoft.com.tr
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen emin_as »

Delphi de debug bilgileri eklenmesi için linking bölümünde debug information true yapılması gerekiyor.

Delphide sebug ve release bölümü test ve son kullanıcı için ayrı derleme seçeneklerini belirlemek için kullanılıyor. IO checking vs gibi kontrolları debug için tutup, release için kapatabiliyorsun.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen vkamadan »

@emin_as , tamam orası öylede benim merak ettiğim "Debug Information , Local Symbols , Reference Info" gibi ilave bilgilerin derlemeye dahil edilerek son kullanıcıya verilmesi çalışma stabilitesi açısında sakınca yaratır mı ?
Volkan KAMADAN
www.polisoft.com.tr
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen emin_as »

Delphi debug ederken gerekli bilgileri dcu lardan okuyor, exe ye bakmıyor. Sadece linking bölümünden işaretlersen, exeye bu bilgiler ekleniyor ve exe boyu çok fazla büyüyor. Debug information eger true yapılmadıysa, exenin release veya debug olarak derlenmesi farketmiyor.

Debug informationlı exe nin verilmesi durumunda, bir debugger kullanarak programdaki değişkenleri ve bunların hafızadaki yerleri görülebilir. Yeterince bilgi sahibi birisi buradaki degiskenlerle oynayarak, kopya koruma kullandıysan bunu etkisizleştirebiir.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen orhancc »

Base, Debug, and Release are the three default build configurations:

Base acts as a base set of option values that is used in all the configurations you subsequently create.
The Debug configuration enables optimization and debugging, as well as setting specific syntax options.
The Release configuration does not produce symbolic debugging information, and the code is not generated for TRACE and ASSERT calls, meaning the size of your executable is reduced.

You can change option values in any configuration, including Base. You can delete the Debug and Release configurations, but you cannot delete the Base configuration.
http://docwiki.embarcadero.com/RADStudi ... s_Overview
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen vkamadan »

@emin_as , @orhancc bilgilendirmeler için teşekkür ederim ,
Uygulamam debug info ekli durumdayken belli belirsiz bazen bekleme modunda yada ekran geçişlerinde beklenmeyen bir şekilde sonlanıyordu, debug info ekli değilken böyle bir sorun ortaya çıkmıyor sorunun debug infoyla ilgili olabileceğini düşündüğüm için ne gibi farklılıklar doğabileceği konusunda fikrinizi almak istedim sizce debug info bahsettiğim gibi çalışma anı hatalarına sebep olabilir mi?
Volkan KAMADAN
www.polisoft.com.tr
emrahgs
Üye
Mesajlar: 110
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen emrahgs »

Konunun Üzerinden Uzunca Bir Süre Geçmiş Ama
Bu iki Derleme Arasın da
Büyük Projede Performans Farklığı Olabilir mi?
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen ertank »

Merhaba,

Eğer Delphi ayarları sıfır kurulumdaki gibi ise;
- DEBUG: Optimizasyonlar kapatılır. Sembolik Debug açılır. Bazı özel kullanım seçenekleri de değiştirilir (Stack Frames ON, Local symbols ON, vb). Böylece IDE içinde debug yapıldığı zaman çalışan uygulamanın prosedür/fonksiyon içindeki değişken değerleri okunabilir olur.
- RELEASE: Optimizasyonlar açılır. Sembolik Debug kapatılır. Kod TRACE ve ASSERT çağrılarına cevap vermez şekilde oluşturulur, yani EXE dosya boyu ufalır. Bazı özel kullanım seçenekleri de değiştirilir (Stack Frames OFF, Local symbols OFF, vb)

Özetle yukarıdaki şartlarda DEBUG modunda derlenmiş bir EXE;
- Dışarıdan başka bir uygulamanın müdahalesi ile çalışma zamanında değişken değerlerine müdahale edilebilir olur.
- Dosya boyutu daha büyük olacaktır. Ancak büyüklük miktarı uygulamada kullanılan ünitelere göre değişiklik gösterir.
- *hacker* kabiliyetlerinde birisi DEBUG modundaki uygulamanın varsa şifreleme yöntemini çok daha rahat bir şekilde kırar. Hatta kırmak için uğraşmaz. Değişken değerlerine müdahale ederek uygulamanın sanki "lisanslı gibi" olduğunu zannetmesini sağlayabilir.

RELEASE modundaki optimizasyon for, while gibi döngülerin, inline fonksyion kullanımı gibi optimizasyonu ifade eder.
Performans ise çok farklı bir konudur. Direk olarak uygulama içinde yazılmış olan kod ile ilgilidir. Örneğin bir SQL sorgusunu kapatıp açmak ile Refresh etmek arasındaki zaman farkı gibi konuları içerir. Veya Database operasyonları yapılır iken TDataSet.DisableControls() kullanıldığı zaman ile kullanılmadığı zaman arasındaki farkları içerir.

Çok güncel bir konu olarak aşağıdaki linkteki süre farklılıkları tamamen performans konularıdır.
viewtopic.php?f=2&t=36329
emrahgs
Üye
Mesajlar: 110
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen emrahgs »

@ertank
Hocam bu Detaylı Cevabınız İçin Teşekkür Ediyorum.
Aslında
Benim Sorunumun Çıkış Noktası
Delphi Xe2 ile derlenen Projenin Delphi 2007 dekinden Daha Yavaş Çalışmasıydı.
Her Ne Kadar Xe2 de Yeni Bir Kompanent seti kullansak da bu denli yavaşlayacağını düşünmüyorum.
Ama Bu Yavaşlığın Nedeni ni de Bulamadım;
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Derleme Seçenekleri (DEBUG-RELEASE) Hakkında

Mesaj gönderen ertank »

Yukarıda açıklamaya çalıştığım peformans konusunun tam da sizin bahsettiğiniz "yeni bileşen seti" ile ilgili olduğunu düşünüyorum. En güzel test Delphi 2007'de de aynı bilşenleri yükleyerek (eğer aynı sürümün Delphi 2007 versiyonu var ise) test etmek olabilir.
Cevapla