Fark ettim ki, Sun, Java'nın 64 bit sürümünü sunuyor. 32 bit sürümünden daha iyi performans gösteriyor mu?Java 64 bit, 32 bit sürümden daha iyi performans gösteriyor mu?
cevap
İş yükünüzü ve "gerçekleştirme" nin ne anlama geldiğini tanımlayın.
Bu uzun süredir bir performans geek olarak, benim için çalışan sıkıntı tür. Belirli bir değişimin "daha iyi performans gösterip göstermediği" olsun ya da olmasın, öncelikle ve en önemlisi, iş yükünde, yani programdan ne istediğini soruyorsunuz.
64 bit Java, genellikle ağır hesaplama yükleri olan şeylerde daha iyi performans gösterir. Java programları, klasik olarak, ağır I/O yüklerine ve ağır ağ yüklerine sahiptir; 64 bit vs 32 bit önemli olmayabilir, ancak işletim sistemleri genellikle yapar.
Evet, özellikle kodunuz 64 bitlik bir platformu hedefleyecek şekilde oluşturulmuşsa. En İşlemci mimari yapılarındandır 32-bit üzerinde
64 bit platform için bir Java kodu nasıl hedeflenir? – TofuBeer
32 bit yerine 64 bit tamsayı kullanın .... vb. –
tüm şey eşit olduğunda, 64-bit daha hızlıdır. 64 bit işaretçiler 32 bit olarak aktarmak için iki kat fazla bant genişliği gerektirir. Bununla birlikte, x64 komut kümesi mimarisi x86 üzerinde biraz akıl almaz, böylece daha hızlı olur. Uzun tiplerin kullanım miktarı genellikle küçüktür. Tabii ki, aynı zamanda Java'nın uygulanmasına da bağlıdır. Derleyicinin yanı sıra, uygulamadaki farklılıkları da bulabilirsiniz; örneğin, NIO 64-bit işaretçileri varsayar. Ayrıca, Sun'ın daha önce yalnızca x64 için daha hızlı olan sunucu HotSpot uygulamasını gönderdiğini unutmayın. Bu, -d64
'u belirttiyseniz, istemciden sunucu HotSpot, IIRC'ye geçiş yapmanız anlamına gelir.
Bazı iyileştirmeler: işlemler 64 bit üzerinde çiftlerde ile int kıyasla 64 bit uzun üzerinde 32 bit üzerinde yüzen yanı sıra operasyonlarda eşit hızlı hesaplamak.
Yani uzun ürünler tonlarca kod çalıştırıyorsanız gerçek iyileşme görebilirsiniz.
Neredeyse her zaman 64 bit daha yavaş olacaktır.
HotSpot FAQ den Sun alıntı: bir uygulama SPARC 32 bitlik bir platformun karşı bir 64 bit platformda çalışan karşılaştırılması performans farkı% 10-20 mertebesindeolan
64 bit VM'ye taşırken bozulması. AMD64 ve EM64T platformlarında bu arasındaki fark, 'a bağlı olarak% 0 - 15 arasında değişmektedir ve uygulamanızın gerçekleştirdiği işaretçisinin miktarını gösterir.
linkten fazla detay bulunmaktadır.
, yukarıdaki paragraf –
1.2 GB'den daha fazlasına ihtiyacınız varsa 64 bit daha iyi performans gösterir. Bazı platformlarda en fazla 3 GB alabilirsiniz, ancak örneğin 4 - 384 GB istiyorsanız 64 bit tek seçeneğinizdir.
Herkes daha yüksek gitmek eğer biliyor Azul bir 384 GB JVM destekleyen inanıyoruz?1.2GB'de belirtildiği gibi x86_64 üzerinde neredeyse her zaman daha hızlı mıdır? bellek? – johnny
@johnny Evet, 32 bit Windows sistemlerinde 1,2 GB bellek. –
Benim deneyimim diğer yanıtlardan farklı.
Java 64bit, 32bit'dan daha hızlı olabilir. En azından sınavlarımda her zaman oldu!İşaretçi argümanı 4GB'tan daha az kullanıldığında geçerli değildir, çünkü 64bit-VM dahili olarak kısa göstergeler kullanacaktır. Ancak 64bit işlemcinin daha hızlı komut seti!
Bunu Windows 7 ve JDE1.8.0_144 ile test ettim, ancak asıl neden farklı dahili JVM ayarlarıdır. 64-bit JVM'yi kullandığınızda "server" modunda başlar, 32-bit VM "client" modunda başlar.
- 1. Java performansı 64 bit
- 2. Intellij idea 32 bit vs 64 bit hız ve performans
- 3. Her zaman 32 bit ve 64 bit makinede 64 bit
- 4. Tek 32/64 bit sürücüleri
- 5. 64-bit Windows'da 32 ve 64 bit birlikte çalışabilirlik
- 6. JRE mimarisini belirleme 32 bit vs 64 bit
- 7. 32 bit mimarilerde 64 bit işlenen üzerinde işlemler?
- 8. Java 64 bit JDK sorusu
- 9. Bağlantı Noktası 32-Bit 64-Bit Windows sürücüsü Windows
- 10. 64 bit CentOS sisteminde 32 bit özel Perl için 32 bit XS modülleri nasıl oluştururum?
- 11. 32 bit DLL'lere karşı 64 bit EXE bağlantısı olabilir mi?
- 12. 64 bit Azure Web uygulamasında 32 bit uygulamaları etkinleştirin
- 13. 64 bit işletim sisteminde 32 bit STS kullanmak mümkün mü?
- 14. 64 bit MSBuild 32 bit uzantıları neden yükleniyor?
- 15. 64 bit makinede yakalanan 32 bit işlemin hata ayıklama dökümü
- 16. 32-bit işlemden 64-bit dll'de LoadLibrary çağrısı
- 17. Bir 32 bit programında 64 bit sürücü kullanılması. Windows
- 18. 64 bit sistemde 32 bit dll kullanma 0x8007000B Hatası
- 19. 64 bit platformda 32 bit programları derlemek için gcc gç
- 20. Garip ASP.NET AJAX Hata/32 bit 64-bit
- 21. 64 bit uygulamadan 32 bit paylaşılan kitaplığı yükleyin?
- 22. 64-bit bir makinede 32-bit C# uygulaması çalıştırılıyor
- 23. Nasıl 32 bit C# uygulaması bir 64 bit DLL kullanabiliyor
- 24. 64 bit ortamda 32 bit OS X ikili dosyalarını derleme
- 25. Montajda 32/64 bit mimariyi belirle
- 26. Bir uygulamanın 32 veya 64 bit sürümünü,
- 27. 64 bit Java VM uygulaması 10x daha yavaş çalışır
- 28. Android app Saf java: 32 veya 64 bit?
- 29. Java 64 bit JDBC-ODBC sürücü sorunları
- 30. 64 bit Java, 32 bit MS Access veritabanına ODBC aracılığıyla erişemiyor
Cevabın bu kadar basit olduğuna inanamıyorum. Benim için 64 bit adres alanının bir yardım ve bir engel değil yükler için daha uygundur. Çok sayıda veriye ihtiyacınız varsa, her işaretçi için 2 kat maliyet vardır. Bir web sunucusu nesne önbelleği, 64 bit kazancının bulunduğu bir örnektir. – Cheeso
Sun, bu cevabın yanlış olduğunu söylüyor. – Darron
Darron, bunun için bir alıntı var mı? 10 yıldır Sun için çalıştığım için ve cevap temelde “iş yüküne ve ölçmekle ilgili ne tür bir performansa bağlı” olduğu için, ben - bunu nasıl yapacağım - sana inanmıyorum. –