Java'da örneğin kullanarak performans etkisi
Bir uygulama üzerinde çalışıyorum ve bir tasarım yaklaşımı instanceof
operatörün son derece ağır bir durumdur. Biliyorum ki, o OO tasarım genellikle farklı bir hikaye instanceof
kullanarak önlemek için çalışır ve bu soru tamamen performans ile ilgilidir. Eğer herhangi bir performans etkisi olup olmadığını merak ediyorum? ==
kadar hızlı mı?
Örneğin, 10 alt ile bir temel sınıf var. Temel sınıf götüren tek bir işlev, sınıf, alt sınıflar ve bazı rutin yürütmek için kontrolleri yaparım.
Bir diğer yol düşündüm çözme olduğunu için kullandıkları bir "kimliği" ilkel tamsayı yerine, bir bit maskesi için temsil kategoriler alt sınıfları, ve daha sonra sadece bir bit maskesi karşılaştırma alt "kimliği" için sürekli bir maske temsil eden kategori.
instanceof
daha hızlı olmak JVM tarafından bir şekilde optimize edilmiştir? Java sopa istiyorum ama uygulama performansı önemlidir. Eğer bu yoldan daha önce gelmiş olan birisi bir tavsiyede olsaydı iyi olurdu. Çok fazla kusur ya da yanlış bir şey odaklanarak optimize mıyım?
CEVAP
Modern JVM/JIC derleyicileri, geleneksel olarak en performans isabet "yavaş" operasyonlar, örneğin, özel durum işleme, yansıma, vb. kaldırıldı
Donald Knuth, "küçük verimlilik unut, — % hakkında: prematüre optimizasyonu tüm kötülüklerin köküdür." yazdı ÖrneÄŸin performans muhtemelen bir sorun olmayacak, böylece sorun olmadığından emin olana kadar zaman egzotik çözümler ile geliyor boÅŸa harcamayın.