SORU
24 NİSAN 2010, CUMARTESİ


Neden dili bu kadar yavaş?

The Computer Language Benchmarks Game gibi:

  • git ortalama 10x C daha yavaştır
  • git 3x Java! daha yavaştır?

Nasıl bu, derleyici gidip göz önüne alınırsa yürütülmesi için yerel kod üretiyor olabilir mi?
Derleyiciler gitmek için olgunlaşmamış? Ya git dil ile bazı içsel bir sorun var mı?

DÜZENLEME:
En cevaplara dil içsel yavaşlık, sorun olgunlaşmamış derleyici bulunduğu iddia inkar.
Biraz kendi testleri to calculate Fibonacci numbers yaptım bu yüzden: C same hızı (O3 seçeneği ile) ile Yinelemeli algoritma çalışır (, 6g freebsd). Donuk özyinelemeli bir 2 times C daha yavaş Git (- O3;- O0 - aynı seçeneği ile) çalışır. Ama 10x Kriterler bu Oyuna bu kadar aşık görmemiştim.

CEVAP
24 NİSAN 2010, CUMARTESİ


6g ve 8 g derleyicileri, özellikle optimize değil, ürettikleri kod özellikle hızlı değil.

Hızlı kendilerini çalıştırın ve TAMAM kod (optimizasyon biraz var) üretmek üzere tasarlanmış. gccgo GCC mevcut optimizasyon geçer kullanır ve C ile daha pointful bir karşılaştırma sağlayabilir, ama gccgo özelliği-henüz tamamlanmış değil.

Kriter rakamlar neredeyse tamamen uygulamanın kalitesi hakkında. Uygulama kriter gerçekten ihtiyacı olmayan dil özelliklerini destekleyen harcadığı zamanı, verdiği durumlar dışında gibi dili ile yapmak için çok büyük bir miktar yok. En derlenmiş bir dil yeterince zeki derleyici olabilir teoride kaldýrmak için ne gerekli değil, ama bazen bir nokta nerede olduğunuzu arma demo, çünkü çok az gerçek kullanıcıların dil ki yazma programları yoktu kullanan özelliği. Tamamen silmeden yol açıyor (örneğin JİT-derlenmiş Java sanal çağrı hedefleri tahmin) zor almaya başlıyor.

FWIW, benim de çok önemsiz testi ile giderken ben almadan bir bakmak (bir döngü tamsayı ayrıca, temelde), gccgo üretilen kod doğru hızlı sonu aralığında gcc -O0 gcc -O2 eşdeğer C. gitmiyor doğal olarak yavaş, ama Derleyiciler yapma her şey, henüz. Neredeyse 10 dakika eski bir dil için şaşırtıcı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Floortile83

    Floortile83

    16 Ocak 2010
  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006