2016-08-27 36 views
6

Uygulamamda çok sayıda konsol.log() var. Çoğunun yakalama blokları vardır, bu yüzden gelişirken neyin yanlış gittiğini açıkça görebiliyorum. Bazıları mevcut saati günlüğe kaydeder, böylece işlev yürütme sürelerini kontrol edebilirim.React Native - Üretime gittiğinde console.log() performansa zarar veriyor mu?

Üretime dağıtım yaparken, bu konsol.log(), istemci aygıtlarında çalışır. Onları oldukları gibi bırakabilir miyim? Performansa/belleğe zarar verecekler mi, yoksa bazı istisnalara veya istenmeyen davranışlara neden olacak mı?

cevap

1

Eh .. evet. Daha fazla kod, daha uzun bir yürütme süresi demektir. Gereksiz CPU "gücü" almaz, aynı zamanda console.log da senkronize olur, bu yüzden uygulamanızı yavaşlatır (hatta birkaç nanosaniyede bile). Ancak, hata ayıklamayı kullanmak istiyorsanız, Winston'a gerçekten bakmalısınız. Bu eşzamansızdır, dolayısıyla söz konusu problemi çözer.

Milisaniye için fazla bakım yapmazsanız, it doesn't take much to let the bundle creator strip code that's going to be production ready olmasına rağmen onu bırakırdım. Yerli docs Tepki itibaren

if(__DEV__) { 
    console.log('This will be stripped in production.'); 
} 
13

: Sadece aşağıdaki gibi bir şey yapabilirsiniz

console.log ifadeleri

bir paket uygulama çalıştırıyor, bu ifadeler büyük darboğaz neden olabilir JavaScript iş parçacığında. Bu, redux-logger gibi hata ayıklama kitaplıklarından yapılan çağrıları içerir, bu yüzden paketlemeden önce bunları kaldırdığınızdan emin olun.

Yani evet .. Ben bunları kaldırmak istiyorum :) yakalamak tablolara

olanlar sadece ateşi içinde bırakmak Tamam olabilir bir sorun varsa (daha doğrusu endişe daha bu konuda fazla bilgi kapmak istiyorum performans isabet hakkında)

tepki yerli docs here

0

tüm uygulamadaki tüm console.log ifadeleri devre dışı bırakmak için bu iyi bir uygulama mı daha performans ipuçları var?

Herhangi bir yan etki? dosyasının en üstünde

: App.js şunlardır:

// To assign console.log to nothing 
if (!__DEV__) { 
    console.log =() => {}; 
}