Ny version af Node.js baner vej for bedre ydelse

Version 8 af Javascript-servermiljøet Node.js bruger ny motor, som på sigt kan føre til mere fart i webapps.

En ny udgave af Node.js, det populære Javascript-servermiljø til udvikling af webapplikationer, har set dagens lys.

Version 8 vil benytte Googles dansk-udviklede Javascript-motor V8, kendt fra Chrome-browseren, i version 5.8. Den opgradering skulle klare banen for en smertefri overgang til V8 i version 5.9, som benytter en ny Javascript-fortolker med navnet 'Ignition.' Det skriver mediet InfoQ.

Denne fortolker skulle give mere smæk for skillingen i fremtiden.

Blandt andre nyheder er funktionen util.promisify, der tager en almindelig Node.js-funktion og skaber den om til en 'promise', som så kan benyttes i asynkrone kald. Version 8 er tillige den første 'long term support'-udgave, hvor asynkrone kald, med funktionerne async og await, er understøttet.

Den nye Node.js-version bygger på pakkemanageren Npm 5.0, som også kan byde på forbedringer i ydelsen.

Node.js Foundation, der er open source-gruppen bag servermiljøet, anbefaler at produktionsmiljøer venter med at opgradere til senere på året, hvor version 8 til oktober får status som langtidsholdbar version.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (7)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Patrick Moog

Jeg har ikke sat mig nok ind i Node JS endnu, men bliver scriptet fortolket én gang til noget tættere på maskinen, og så ellers brugt derfra, eller bliver det fortolket hver gang som i en browser?

Er der lavet nogle overbevisende analyser af performance af Node. js vs. kompilerede sprog og endda andre fortolkede sprog?

Allan Ebdrup Blogger

Browseren fortolker ikke hver gang. "Hot spots" i JavaScript koden kompileres, og små funktioner inlines og alle mulige andre compiler/runtime tricks. Jeg vil foreslå at du googler det, det er et stort emne, og der sker hele tiden nyt.

Den store performance forskel i node.js kommer fra non-blocking I/O. En klassisk artikel om hvad den slags betyder, er denne fra da LinkedIn flyttede fra Rails til node.js
http://highscalability.com/blog/2012/10/4/linkedin-moved-from-rails-to-n...
Hvor performance på node var op til x20 og de gik fra at skulle bruge 30 servere til kun at skulle bruge 3.

David Konrad

@Patrick Moog , Nodejs er bare javascipt der kører på din server i stedet for java, python, php osv. Det giver nogle helt utrolige fordele. Den ene er at du bare kan kopiere din kode på en client, og bruge den serverside, den anden er at du får alle fordelene af, at JS er et asynkront programmeringssprog. Og her har du svaret: Der er ingen svartider, nodejs kører i en faktor 1x100.000 ift lignende python scripts. I modsætning til f.eks PHP hvor man venter på at et script er eksekveret færdigt, så kører nodejs mere i et loop der bare overstyrer udførslen af processer. Een enkelt nodejs server kan servicere et chat-program med 1 mio brugere. Det kan et php-script ikke, for det vil i sidste ende blive fyldt op af stop og svar, stop og svar ...Og så kan du køre nodejs på processorer, og det kan du ikke med python og PHP, dvs få meget mere ud af serveren.

David Konrad

Det burde måske være rimeligt at anføre, at nodejs er baseret på at nogle helt vildt intelligente personer så lyset, da Chrome-udviklerne i Århus ikke havde lavet den rigtige licens, så det blev muligt. Google havde da aldrig forestillet sig at deres V8-engine skulle blive forket.

Martin Høgh

JavaScript på V8 bliver ikke afviklet meget hurtigere end så mange andre fortolkede sprog og selvfølgelig meget langsommere end kompilerede. Node og PHP7 er ca. lige hurtige. Men Node afvikler koden i et single-threaded non-blockning event-loop, som gør, at det er meget velegnet til visse typer løsninger (chat som det evindelige eksempel). Men du kan implementere non-blockning event-loops i de fleste andre sprog (Java, PHP, Python, Go, C# mv). http://reactphp.org/ https://docs.python.org/3/library/asyncio.html https://spring.io/guides/gs/messaging-reactor/

Log ind eller Opret konto for at kommentere