Forum: D Programlama Dili RSS
Derleme hızı ve program boyutları
anil #1
Üye Ock 2014 tarihinden beri · 11 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Derleme hızı ve program boyutları
D dilinde küçük uygulamalar oluşturmaya başladım. Gerçekte eğlenceli ve zevkli bir dil ancak iki konu aklıma takıldı.
1- derleme süresi biraz fazla uzun sürüyor. Normale göre :D
2- yazdığım konsol tabanlı programlar bile büyük boyutlu oluyor. C de 70-80 kb olan programları d ile yazinca 500-600 kb boyutuna ulaşıyor. Hele bir de gtkd işin içine girince 1.5 Mb a kadar çıkıyor.

Şu an için bana bir engel değiller ama ileride komplex programlar yazınca sorun olacak gibi görünüyor.

Bu sorunların Nedeni ne olabilir? Dil geliştikçe bu sorunlar çözülür mü?
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
anil:
1- derleme süresi biraz fazla uzun sürüyor. Normale göre :D

C++ gibi dillerle karşılaştırınca D'nin derleme süresi akıl almayacak derecede hızlıdır. Bu, dilin tasarımından kaynaklanan bir konu.

Ancak, derlemeyi yavaşlatan etkenler de var:

  • Derleyici eniyileştirmeleri. Eğer derleyici derlemenin üstüne program hızlı çalışsın diye ek akıllılık gösteriyorsa biraz zaman da ona harcanıyor. Bu, gdc ve ldc'de daha belirgin çünkü onlar dmd ile karşılaştırıldığında daha hızlı işleyen programlar üretiyorlar.

  • Adı üstünde, CTFE (derleme zamanında işlev işletme), işlevlerin derleme zamanında işletilmelerini sağlıyor. Başka sistem dillerinin erişemedikleri akıl almaz bir olanak olmasına rağmen, doğası gereği derlemeyi yavaşlatıyor. (C++11 bu konuda yenilikler getirdi.)

  • Şablon açılımları derlemeyi yavaşlatabilir. Bu, C++'ta da bulunan bir etki.

Eğer derleme hızını C ile karşılaştırıyorsan ona bir şey denemez çünkü çok az olanağı olan C çok çok hızlı derlenen bir dildir.

C de 70-80 kb olan programları d ile yazinca 500-600 kb boyutuna ulaşıyor.

Onun nedenleri var:

  • Kimse bu konuyu önemseyip üzerine eğilmiyor çünkü önemli bir konu değil. Bizim şirkette üretilen programların çoğu bir çok on megabayt büyüklüğünde oluyor.

  • Program kütüphaneyi dinamik değil, statik bağlıyordur. Bu konuda D'nin desteği yeni.

  • C'nin çalışma ortamı (C runtime) D'ninki ile karşılaştırınca çok yeteneksiz: D'de çöp toplayıcı var, dilimler var, vs.

Hele bir de gtkd işin içine girince 1.5 Mb a kadar çıkıyor.

  • Olabiliyorsa kütüphaneleri dinamik bağlamak gerek. Ben bu konuyu fazla önemsemediğim için Windows ve Linux ortamlarında son durumu bilmiyorum ama son bir kaç sürümde gelişmeler oldu.

Şu an için bana bir engel değiller

Evet, aynen öyle! :)

ama ileride komplex programlar yazınca sorun olacak gibi görünüyor.

Çok nadir.
Avatar
huseyin #3
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
C++ gibi dillerle karşılaştırınca D'nin derleme süresi akıl almayacak derecede hızlıdır. Bu, dilin tasarımından kaynaklanan bir konu.
Şu derleme hızı konusunda kesinlikle @acehreli 'ye katılıyorum. İleride projendeki kod satırı arttıkça farkı kendin görebileceğine inancım tam :)

2- yazdığım konsol tabanlı programlar bile büyük boyutlu oluyor. C de 70-80 kb olan programları d ile yazinca 500-600 kb boyutuna ulaşıyor. Hele bir de gtkd işin içine girince 1.5 Mb a kadar çıkıyor.
Bunun sebebi bildiğim kadarıyla D' nin cafcaflı kütüphanesinin statik olarak exeye eklenmesi ancak ben visual D kullanıcısıyım ve şuanda birçok kod içermesine rağmen exe min boyutu 302 kb sanırım visualD bu işle ilgileniyor alt kısımlarını incelemeye vakit bulamadım
Huseyin
Mengu (Moderatör) #4
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
huseyin325325:
C++ gibi dillerle karşılaştırınca D'nin derleme süresi akıl almayacak derecede hızlıdır. Bu, dilin tasarımından kaynaklanan bir konu.
Şu derleme hızı konusunda kesinlikle @acehreli 'ye katılıyorum. İleride projendeki kod satırı arttıkça farkı kendin görebileceğine inancım tam :)

2- yazdığım konsol tabanlı programlar bile büyük boyutlu oluyor. C de 70-80 kb olan programları d ile yazinca 500-600 kb boyutuna ulaşıyor. Hele bir de gtkd işin içine girince 1.5 Mb a kadar çıkıyor.
Bunun sebebi bildiğim kadarıyla D' nin cafcaflı kütüphanesinin statik olarak exeye eklenmesi ancak ben visual D kullanıcısıyım ve şuanda birçok kod içermesine rağmen exe min boyutu 302 kb sanırım visualD bu işle ilgileniyor alt kısımlarını incelemeye vakit bulamadım

siz bir de go'yu gorun boyut konusunda. :)
http://www.mengu.net - some kind of monster
Avatar
huseyin #5
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
siz bir de go'yu gorun boyut konusunda. :)

GO derken sanırım go programlama dilini kastediyorsunuz? Derlenebiliyor mu? Yoksa python gibi dosya sonuna ek olarak mı oluşturuluyor?
Huseyin
Mengu (Moderatör) #6
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
huseyin on 2014-02-06, 03:48:
siz bir de go'yu gorun boyut konusunda. :)

GO derken sanırım go programlama dilini kastediyorsunuz? Derlenebiliyor mu? Yoksa python gibi dosya sonuna ek olarak mı oluşturuluyor?

evet, bildigimiz go programlama dili, nam-i diger golang. go derlenen bir dil ve derleme sonrasi dosya boyutu her surumde artiyor.

https://donatstudios.com/Golang-Binary-Sizes
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
unilink bağlayıcısı ile bağlayınca D ile yazılmış minik bir Windows programının boyu 1068 bayt olabiliyormuş:

  http://forum.dlang.org/thread/trsunkhmxurvvsrsxvgq@forum.d…

Bomboş bir object.d kullandığı için pek yetenekli olduğu söylenemez ama sonuçta mümkün. :)

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 00:31:37 (UTC -08:00)