Günlük kaydı için uygulamamda Log4J kullanıyorum . Daha önce gibi hata ayıklama çağrısı kullanıyordum:
Seçenek 1:
logger.debug("some debug text");
ancak bazı bağlantılar isDebugEnabled()
ilk önce kontrol etmenin daha iyi olduğunu gösterir , örneğin:
Seçenek 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Benim sorum " Seçenek 2 performansı herhangi bir şekilde geliştiriyor mu? "
Çünkü her durumda Log4J çerçevesi debugEnabled için aynı kontrole sahiptir. Seçenek 2 için, çerçevenin isDebugEnabled()
yöntemi birden çok kez çağırması gerekmediği tek bir yöntemde veya sınıfta birden çok hata ayıklama deyimi kullanmamız yararlı olabilir (her çağrıda); bu durumda isDebugEnabled()
yöntemi yalnızca bir kez çağırır ve Log4J düzeyi hata ayıklamak üzere yapılandırılmışsa, aslında isDebugEnabled()
yöntemi iki kez çağırır :
- DebugEnabled değişkenine değer atanması durumunda ve
- Aslında logger.debug () yöntemi tarafından çağrılır.
Ben logger.debug()
yöntem veya sınıf ve çağrı debug()
yöntemi seçenek 1 göre birden çok ifade yazmak o zaman seçenek 2 ile karşılaştırıldığında Log4J çerçeve için yük olduğunu düşünmüyorum isDebugEnabled()
(kod açısından) çok küçük bir yöntem olduğundan, olabilir inlining için iyi bir aday olun.