Forum: D Programlama Dili RSS
ldc hızlı, dmd yavaş
acehreli (Moderatör) #1
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ı
Konu adı: ldc hızlı, dmd yavaş
dmd'nin ldc ve gdc'den yavaş olduğu biliniyor ama D'nin olanakları hep dmd ile geliştirildiğinden bazılarımız dmd'yi kullanmayı seçiyoruz.

Bir blog yazısında D'nin başka dillerle karşılaştırıldığında çok yavaş olduğu yazılmıştı. Nedeni, yazarın sonradan bağlayıcı ayarı ile ilgili olduğu anlaşılan bir sorun yüzünden ldc'yi kullanamamasıymış. Yalnızca  dmd'yi kullanmak zorunda kalınca D yavaş göründü.

D'ciler yazara yardım ettiler, ldc'yi de kullanabildi, ve D o diller arasında (ve o testler üzerinde) en hızlı dil olarak çıktı:

  http://vaskir.blogspot.com/2015/04/computing-cryptography-…

Ali
zafer #2
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Anladığım kadarıyla bu değişimden sonra 4 testin 3'ünde D en hızlı olanmış. Ancak Rust'da oldukça iyi görünüyor. Rust mı öğrenmeye başlasak :)

D dilinini resmi derleyicisi DMD, dolayısıyla benim kişisel görüşüm DMD en iyisi olmalı, nedeni basit D ile tanışan bir çok kişinin ilk kullandığı derleyici ve D hakkında ilk fikir sahibi olduğu derleyici DMD olduğu için, ilk izlenim önemli. Diğer taraftan bu konuda yapacak bir şey yok, umarım DMD daha iyi hale gelir diye bekleyeceğiz.

Ben resmi derleyici olduğu için ve D kurulumu ile geldiği için DMD'yi seviyorum.
https://github.com/zafer06 - depo
acehreli (Moderatör) #3
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ı
zafer:
Rust mı öğrenmeye başlasak :)

Kesinlikle! :)

(Biz de buradaki yerel grubumuza http://www.meetup.com/SFBay-Association-of-C-C-Users/ bir Rust'çı davet edeceğiz.)

Ben yalnızca kulaktan dolma bir kaç şey biliyorum. En önemli özelliklerinden birisi, verinin sahipliği konusu. Yanılmıyorsam, sahiplik elden ele geçiriliyor ve bu derleme zamanında denetlenebiliyor. Örneğin, bir işlev çağrıldığında parametrenin sahipliği işleve geçirilmişse, çağıran kod artık o parametreyi kullanamıyor bile. (Galiba. :) )

ilk fikir sahibi olduğu derleyici DMD olduğu için, ilk izlenim önemli.

Haklısın. Ama dmd bir kaç kişi tarafından geliştirilen ve öncelikle yeni olanakların eklendiği ve hataların giderildiği bir proje. Hız ve bellek konuları ikinci düzeyde kalıyor.

ldc ve gdc ise bu konuda çok şanslı çünkü dmd'nin ön tarafını alarak LLVM'in ve GCC'nin arka taraflarını (back end) kullanıyorlar. Optimizasyon derleyicinin arka tarafında halledildiğinden, yüzlerce programcının onlarca senede getirdiği güzellikler otomatik olarak elde edilmiş oluyor.

Buna karşılık, ldc ve gdc daha yavaş derliyorlar. (dmd de -O seçeneği kullanıldığında daha yavaş derliyor.)

Facebook'ta ne yaptıklarını biliyorum: Günlük geliştirme için dmd, asıl program için gdc... ldc'ye gerek görmüyorlarmış çünkü gdc'den yalnızca yüzde bir kaç birim daha hızlı oluyormuş.

Diğer taraftan bu konuda yapacak bir şey yok, umarım DMD daha iyi hale gelir diye bekleyeceğiz.

Kesinlikle. Seçenekler olması da güzel. Tabii bir de SDC var: Derleyici olanaklarını kütüphane olarak sunacak olan bir proje. Böylece kendi D programlarımızdan bile "şu kodu derle lütfen" diyebileceğiz. :)

Ali
zafer #4
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Kesinlikle! :)

Ben Rust'ı kurdum ve şöyle bir baktım. Cargo adında güzel bir komut satırı yöneticisi var, dub sistemine benziyor ama bence daha gelişmiş durumda. Kod derleme ve çalıştırmanın yanında paket gereksinimlerinide yönetiyor. Ayrıca yol gösterici mesajlar vererek kod geliştirmesinede yardımcı oluyor.

Yazım dili ise benim pek alışık olmadığım şekilde, biraz farklı ama kötü diyemem. Basitliği ve sadeliği seviyorum. Doğrusu Rust dilinde bunları bulmak mümkün gibi.

acehreli:
(Biz de buradaki yerel grubumuza http://www.meetup.com/SFBay-Association-of-C-C-Users/ bir Rust'çı davet edeceğiz.)

Çok istememe rağmen malesef Ankara'da bir grup kuramadık. Bir grup ortamında fikir alışverişi her zaman çok daha iyi oluyor.
https://github.com/zafer06 - depo
kerdemdemir #5
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
GCC 'nin  LDC  gibi bir önyüz hazırlayarak diğer sistem dilleri için olanak sağlaması gerçekten büyük bir öngörü gerektiriyor. Böyle jenerik tasarım yapanlaarı gördükce imreniyorum gerçekten adam sadece kendi sorununu süper çözmekle kalmıyor ileri görüşlülüğü ile diğer projelerede yardım etmiş oluyor.

LDC'i forumda tanıttığın için çok teşekkür ederim Ali Hocam.


Erdem
Avatar
Salih Dinçer #6
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Rust'a baktım da şu özellik çok hoşuma gitti; başka diller de var mı ki?

http://rustbyexample.com/flow_control/loop/nested.html
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
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ı
D'de var. Şurada "Döngü Etiketleri" başlığı altında:

  http://ddili.org/ders/d/etiketler.html

Ali
Avatar
Salih Dinçer #8
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet, tıpa tıp aynısı hatta belki de continue komutu Rust'da işlemiyordur bile :)

İşin ilginci bu konu neden başka bir dilde ilgimi çekti de D'de zaten var olan bir şeyi göremedim?

Belki de unutmuşumdur...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
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-21, 13:21:26 (UTC -08:00)