tabi gelmez Nihayetinde kodumu yavaşlatmak için bastırılmalı mıyım?bir Java alıcı performans kaybına
cevap
JIT derleyici, yöntemi satır içi gösterecektir.
kod Sana iki cevapları
int b = obj.GetA();
Bu doğru değil. Bir C/C++ derleyicisi bu tür bir işlevi belirtecektir, ancak Java'da yapamazsınız çünkü VM işlevin uygulanıp uygulanmayacağını (AOP, AspectJ vb.) Bilmiyordur. – cletus
@cletus VM, tüm Java bayt kodu yönergelerini yorumlar ve dolayısıyla bunun farkındadır - AspectJ –
@binil gibi byte kodlu dokuma araçları tarafından yapılan değişiklikler bile, Michael: Bu, alıcı son olmadıkça nasıl çalışır? Alıcıyı geçersiz kılan alt sınıflar nedir? – Thilo
gibi görünmelidir:
- doğrudan değişken erişen vs gaz giderici kullanmak için önemli bir performans cezası olduğunu sanmıyorum . Kodun bu tür bir karar için performanstan ne kadar anlaşılır ve okunabilir olduğuna dair daha fazla endişelenirim.
- Sizin için önemli olabilecek ya da olmayabilir OO tasarım prensiplerine göre, normalde verileri gizlersiniz ve buna ulaşmak için getter yöntemini sağlarsınız — Bu yaklaşımın esasları hakkında ayrıntılı bir tartışma here.
Diğer yandan, 'get' yöntemleri genellikle kapsülleme işlemini kesintiye uğratır (özellikle de 'set' yöntemiyle birlikte geliyorsa). –
Teorik olarak, yapılmakta olan bir yöntem çağrısı nedeniyle bazı çalışma zamanı cezası var. Gerçekte, bu iki nedenden dolayı genel performansı üzerinde çok az etkisi vardır:
- programın en iç halkanın içinde gerçekleşiyor
obj.getA()
sürece, kodun genel performansı üzerinde daha sonra etkisi olacak ihmal edilebilir. Performans bir sorun olduğunda, kodunuzun darboğazlığını göz önünde bulundurmalısınız. Bu sıcak noktalarda olmayan kodun optimizasyonu için bir nokta yok. Bu noktaları tanımlamak için kodunuzun bir profiler aracılığıyla yürütülmesini analiz etmeniz gerekir. - As @Michael, JVM'nin gerçek yürütmeye dayalı kodlamayı başlatan bir "Just In Time" derleyici/eniyileyici kullandığını söylüyordu. Sadece bu tür en iyi duruma getirme işlemlerini gerçekleştirir (bkz. Bu talk)
- 1. Alıcı uygulaması
- 2. Gövdesiz alıcı,
- 3. Perfmon uygulamasında görüntülenen Java uygulama performans sayaçları
- 4. JVM performans istatistikleri nasıl toplanır java
- 5. IntelliJ alıcı/ayarlayıcı biçimi
- 6. Alıcı tipi ileri beyanı
- 7. Rails ile bir Messenger Gönderen Alıcı Oluşturun
- 8. Özel setter ancak otomatik alıcı
- 9. Android'de SMS'den alıcı numarası al
- 10. Scala Alıcı Listesi [String] Denetleyici'den
- 11. Android'de Chromecast alıcı zaman aşımı
- 12. sonsuz alıcı sorununu geri getiriyor
- 13. IllegalArgumentException: kayıtlı değil Alıcı: com.google.android.gms.common.api
- 14. Chromecast: Alıcı önbelleği nasıl temizlenir
- 15. WatchService birçok dizinde performans
- 16. Scala, Java ile karşılaştırıldığında ne kadar iyi performans gösteriyor?
- 17. MySQL performans
- 18. Performans değerleri
- 19. Performans Farkı
- 20. Ağaç yeniden HOC bileşenleri ile yeniden üretmeye (giriş alanı netleme kaybına neden oluyor)
- 21. Web altyapıları performans incelemesi
- 22. Arabirim tanımında alıcı/ayarlayıcı kullanmak mümkün mü?
- 23. Alıcı, gönderici durduktan sonra çalışmaya devam et
- 24. PHP ile SendGrid v3 API'sine Alıcı Ekleme
- 25. WebView atar Kayıtlı olmayan alıcı: android.widget.ZoomButtonsController
- 26. paypal IPN alıcı alım satım kimliği
- 27. Kotlin: Neden bir varili özel alıcı ile başlatmalıyım?
- 28. Etkinlik veya alıcı olmadan bir hizmet başlatabilir miyim?
- 29. "Örnek iletiler için alıcı türü bir ileri bildirimdir" xcode 4.6
- 30. Yükseltme Asio tcp :: alıcı erişim ihlali istisnası
Vakumda performans soruları işe yaramaz. Uygulamanızdaki performansa duyarlı bir şeritte belirlendikten sonra bunu kendiniz yapın. – djechlin