Javac ile hata ayıklama bilgisi oluşturmayı açarsam, sınıf dosyaları% 20-25 daha büyüktür. Java programının çalıştırılmasında herhangi bir performans etkisi var mı? Varsa hangi şartlarda ve kaç tane. Sınıflar yüklenirken, dosyaların büyük olması nedeniyle biraz etkilenmesi beklenir, ancak bu en az düzeyde olmalıdır.Javac hata ayıklaması arasında açık ve kapalı bir performans farkı var mı?
cevap
Herhangi bir dilde, hata ayıklama bilgisi meta bilgisidir. Doğası gereği nesne dosyalarının boyutunu arttırır, böylece yükleme süresini arttırır. Bir hata ayıklayıcısının dışında yürütme sırasında, bu bilgi aslında tamamen göz ardı edilir. JVM spec'da belirtildiği gibi (açıkça belirtilmemiş), hata ayıklama bilgisi baytkod akışı dışında saklanır. Bu, yürütme zamanında sınıf dosyasında bir fark olmadığı anlamına gelir. Yine de emin olmak istiyorsanız, bunu deneyin :-).
Ps. Çoğu zaman hata ayıklama için optimizasyonun kapatılmasında bir değer vardır. 'un performansa etkisi vardır. Hata ayıklamanın kapatılması hiç bir değişiklik yapmamalıdır.
Ancak hata ayıklamayı kapatıp optimizasyonu açtığınızda, derleme zamanında bazı statik optimizasyonlar yaptığından bir fark görmelisiniz. Bu şekilde, hot spot optimize edilmiş kodunuz bile çalışma zamanında daha hızlı olur. Ancak şu ana kadar, tam yığın izlerinin anlamı veya daha fazla kullanıcı performansına sahip olma arasındaki tradeoff, her zaman yığın izlerine oy verdim. Her şeyden önce, kullanıcılar daha hızlı bir makine almak için her yıl 1000 $ harcamaya istekli, ancak problemlerini çözmek için size anlamlı hata mesajları vermek için 15 dakika harcamak istemiyorlar.
Yıllar geçtikten sonra, 15 dakika değerinde, kullanıcının 1000 $ değerinden daha yüksek değerlere değer veriyorum. :)
lütfen unutmayın o JDK1.3 Javac herhangi bir optimizasyon bayrakları, görmezden beri "derleme zamanı optimizasyonu gereksizdir"
Ek Açıklama: http://ant.apache.org/manual/Tasks/javac.html –
- 1. myCollection.Where (...) arasında bir performans farkı var mı? FirstOrDefault() ve myCollection.FirstOrDefault (...)
- 2. 20 kavanoz kullanarak ve bunları tek bir paket kullanarak kullanma arasında bir performans farkı var mı?
- 3. Performans Farkı
- 4. Eclipse ve javac arasındaki garip derleyici farkı
- 5. "VEYA" kullanarak SQL "IN" ifadesi arasında herhangi bir performans farkı var mı?
- 6. HttpModule ve Global.aspx arasındaki performans farkı nedir?
- 7. javac kullanırken hata: "javac: geçersiz flag: -s"
- 8. .resx dosyası ve uydu montajında herhangi bir performans farkı var mı?
- 9. Adobe ExtendScript hata ayıklaması
- 10. Neden numpy.zeros ve numpy.zeros_like arasındaki performans farkı?
- 11. Hangi platform memmove ve memcpy'de önemli bir performans farkı olabilir?
- 12. Açık ve kapalı parantezleri saymak için çevrimiçi bir hizmet var mı?
- 13. Açık Kapalı knockout js
- 14. Açık/kapalı saatlerin dışında php
- 15. Farkı bilen var mı? javascript oop
- 16. Azure yerel hata ayıklaması
- 17. Ekran açık/kapalı algılama
- 18. Kapalı tip açık tip
- 19. Lisp kod hata ayıklaması
- 20. GC.disable'ın herhangi bir performans dezavantajı var mı?
- 21. MPI hata ayıklaması VS2012 ile
- 22. excel vba kodu açık ve kapalı yorumlar
- 23. Aptana 3.0.4 ve PHP Hata Ayıklaması
- 24. Swift Açık ve Anlamsız Yazma: Performans
- 25. qmake değişkenleri, $$ VAR ve $$ {VAR} farkı
- 26. /mnt/sdcard ve/sdcard arasında bir fark var mı?
- 27. TensorFlow temel hata ayıklaması; Hata ayıklama sembolleri
- 28. Javac
- 29. Sadece bir üyemiz varsa, yapı ve sendika arasında bir fark var mı?
- 30. Aşağıdakiler arasında herhangi bir fark var mı: window.localStorage ve localStorage?
Javac hala -O var mı? Son hatırladım -g: yok denildi. –
Doğru. Yükleme süresi etkilenir, ancak yürütme zamanı değildir. – kohlerm
Gerçekten de güneş java derleyicisinin optimize bayrağı yoktur. Optimizasyon esas olarak hotspot çalışma zamanında gerçekleşir. Derleme süresinde optimizasyon yapmak, sıcak noktaların optimize edilmesini engelleyebilir (tam bilgi sadece derleme zamanında kullanılabilir). –