SORU
16 AĞUSTOS 2010, PAZARTESİ


Java hız vs Scala hız derleme derleme

Bir süre Scala programlama oldum ve hoşuma gitti ama rahatsız olduğum bir konu programları derlemek için gereken süreyi. Bu gibi küçük bir şey ama Java yapabilirim küçük değişiklikler için benim programı Çalıştır düğmesini Eclipse, ve BOOM çalışıyor ve zamanla derleme scala gibi tüketmek için bir sürü zaman. Çok büyük projeler ile bir betik dili Java kullanıyordum zaman alır derleme, doğan görmediğim bir ihtiyaç nedeniyle çok önemli hale geldiğini duydum.

Ama anladığım kadarıyla, daha hızlı başka bir derlenmiş dil daha hızlı Scala geçtim nedenlerden dolayı(çok basit bir dil olan Java ' dan geliyorum.

Sormak istedim, Scala daha hızlı derleme yapıyorum ve scalac hiç javac kadar hızlı olacaktır.

CEVAP
31 AĞUSTOS 2010, Salı


(Eksikliği) hız Scala için derleyici iki yönü var.

  1. Büyük başlangıç yükü

    • Scalac yüklenecek ve jit-derlenmiş olan pek ÇOK ders oluşmaktadır

    • Scalac tüm kök paketler ve dosyalar için bir sınıf aramak için vardır. Sizin sınıf bu büyüklüğüne bağlı olarak bir ila üç saniye fazla zaman alabilir.

    Genel olarak, 4-8 saniye scalac başlangıç yükü, ilk kez disk alır, onu çalıştırmak için uzun süre beklemek dolu değil.

    Başlangıç yükü için Scala cevabı da fsc kullanmak veya TV izleme ile sürekli bina yapmak. Kişisel küçük dosyalar makul olmayan büyük olduğu için bile, her iki seçeneği kullanmak için yapılandırılacak, aksi halde kendi yükünü ihtiyacı var.

  2. Yavaş derleme hızı. Scalac yaklaşık 500 1000 satır/sn başarıyor. Javac yaklaşık 10 kez o yönetir. Bunun birçok sebebi vardır.

    • Tür kesmesi ise örtülü bir arama söz konusu olduğunda pahalı özellikle.

    • Scalac tür denetlemesi iki kez; bir kez Scala göre kuralları ve Java kurallarına göre silinmesi sonra ikinci kez.

    • Tür denetlemesi ayrıca yaklaşık 15 dönüşüm adımları her zaman olan Java, Scala gitmek vardır.

    • Scala işlevsel cümleler yoğun olarak kullanılan genellikle Java daha verilen dosya boyutu başına çok fazla ders, özellikle oluşturur. Bayt nesil ve sınıf yazmak zaman alır.

    Diğer taraftan, 1000 satır Scala programı diye karşılık 2-3 K hat Java program, bu yüzden biraz daha yavaş hız zaman görüldüğü gibi satır başına ikinci olan dengeli karşı daha fazla işlevsellik başına satır.

    Hız geliştirmeleri paralel olarak sınıf dosyaları oluşturarak örneğin) üzerinde çalışıyoruz, ama bir kısmı, bu konuda bir mucize bekliyoruz. Scalac hiç javac kadar hızlı olacaktır. Çözüm dosyaları yalnızca küçük set çekirdekler çok iyi bağımlılık analizi ile birlikte derleme fsc gibi sunucuları yalan inanıyorum. Onun da üzerinde çalışıyoruz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • failblog

    failblog

    17 HAZİRAN 2008