2014-02-14 15 views
6

Gibt es in einer NodeJS-Anwendung einen Vorteil für die Verwendung von minimiertem Quellcode serverseitig?Hat es einen Vorteil, den Quellcode zu minimieren, der nur von Node gelesen werden kann?

Der einzige Vorteil, den ich bekommen könnte, ist, dass die kleineren JS-Dateien wahrscheinlich etwas schneller von der Festplatte geladen werden würden. Aber das scheint vernachlässigbar, da es nur die Startzeit beeinflussen würde.

Gibt es also einen Grund, unsere Quelle über den Uglify- oder Closure-Compiler zu verarbeiten, bevor wir sie auf unseren Produktionsservern bereitstellen?

+1

@mfreitas: Gute finden. Ich habe es mit meinen Fragen nicht verstanden. Vielen Dank –

Antwort

8

Der Minifikationsort reduziert die Bandbreite (kleinere Datei = weniger Bytes). Da Sie Ihren Servercode nicht an Ihren Client senden, gibt es keinen Grund, ihn zu reduzieren. True, das Lesen der Datei von der Festplatte wird ein winziges Bit schneller sein, aber wenn Startzeit ist Ihr Engpass, haben Sie einige größere Probleme.

Zusammenfassend ist Schluss Compiler nicht nur ein Minifier: Es versucht, ein Javascript-Compiler zu sein, versuchen, Ihren Code zu beschleunigen. Die verschiedenen JITs mögen Ihren "kompilierten" Code vielleicht auch besser, besonders beim Inlining. Nachdem , dass gesagt wurde, wird die Geschwindigkeitsdifferenz wahrscheinlich vernachlässigbar sein.

Fazit: Nein, aber Sie können die Nebenwirkungen genießen. Ich kenne keine Tests, also könnten Sie ein Pionier auf diesem Gebiet sein. Benchmarkieren Sie Ihr unmini fi ziertes Programm für einige Zeit und benchmarken Sie dann die verkleinerte Version.

3

Ja.

Es wird die Startzeit reduzieren, da node.js sie lädt und bei jedem Start des Prozesses analysiert.

Aber der Vorteil davon ist marginal. Wenn Sie einen Server schreiben, sollten Sie dies nicht einmal tun, denn Server werden nur einmal gestartet und arbeiten lange.

Wenn Sie jedoch eine große CLI-Anwendung schreiben (Paketmanager wie YAPM oder Bower oder Komponente sind großartige Beispiele dafür), besteht die Möglichkeit, dass Sie die Startzeit erheblich reduzieren können. Es ist nicht nur wegen der Minification, sondern vor allem wegen der Bündelung und Speicherung von() fs Hits. Die Verkleinerung an sich bringt jedoch nicht viel.

Wie auch immer, versuchen Sie Ihre App mit nexe zu kompilieren und finden Sie es selbst heraus. Es besteht die Chance, dass Sie keinen Nutzen daraus ziehen, aber zumindest werden Sie es wissen. :)