2016-08-27 4 views
6

Ich habe eine Menge console.log() in meiner App. Die meisten von ihnen sind in Catch-Blöcken, so dass ich klar sehen kann, was bei der Entwicklung schief gelaufen ist. Einige sind da, um die aktuelle Zeit zu protokollieren, damit ich die Ausführungszeiten der Funktionen überprüfen kann.React Native - Beeinträchtigt console.log() die Leistung bei der Produktion?

Bei der Bereitstellung in der Produktion werden diese console.log() auf den Geräten des Clients ausgeführt. Kann ich sie einfach so lassen wie sie sind? Beeinträchtigen sie die Leistung/das Gedächtnis oder verursachen sie eine Ausnahme oder unerwünschte Verhaltensweisen?

Antwort

1

Nun .. ja. Mehr Code bedeutet eine längere Ausführungszeit. Es wird nicht nur unnötig CPU-Leistung benötigt, console.log ist auch synchron, so dass es Ihre Anwendung langsamer (sogar um ein paar Nanosekunden) macht. Wenn Sie das Debuggen verwenden möchten, sollten Sie wirklich in Winston schauen. Es ist asynchron, so löst es das vorgenannte Problem.

Wenn Sie nicht viel interessieren für Millisekunden dann würde ich es verlassen, obwohl it doesn't take much to let the bundle creator strip code that's going to be production ready. Sie können nur so etwas wie die folgenden Aktionen ausführen:

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

Von Reagieren india docs:

console.log Aussagen

Wenn ein gebündeltes App ausgeführt wird, diese Aussagen können einen großen Engpass verursachen im JavaScript-Thread. Dazu gehören Aufrufe von Debugging-Bibliotheken wie redux-logger. Stellen Sie daher sicher, dass Sie diese vor dem Bündeln entfernen. auf dass

Also ja .. ich würde sie entfernen :)

Die, die in Ihrem Fang Aussagen in Ordnung sein können, da sie nur Feuer zu verlassen, wenn ein Problem da ist (lieber mehr Informationen als Sorge greifen über den Performance-Treffer)

Es gibt mehr Leistung Tipps für die reagieren nativen docs here

0

ist die gute Praxis alle console.log Aussagen in Ihrer gesamten App zu deaktivieren?

Irgendwelche Nebenwirkungen?

Am Anfang der Datei: App.js umfassen:

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