• WEB DESIGN AGENCY

  • Sede Principale

    Multimedia Web

    Blog Studio Web

    Studio Web

    Sede a Venezia

    Web Agency Venezia

    Sede a New York

    Nyc Web Design

    Sede International

    Web Designer International

    Sito Demo One Page

    Spaghetti Web

    Landing page

    Savinus

  • smartphone

    Seguici sul tuo smartphone

  • web-designer-ancona
  • AGENZIA WEB

Home / News / NodeJS: è possibile farne a meno?

NodeJS: è possibile farne a meno?


Gestione delle connessioni e concorrenza

Il runtime offre il supporto per un elevato numero di connessioni concorrenti su un singolo thread, questa caratteristica rende NodeJS una soluzione ideale per la realizzazione di applicazioni che devono gestire grandi quantità di dati e di traffico. A tal proposito basti pensare ad una piattaforma per il commercio elettronico che, per sua natura, dovrebbe consentire a più utenti di interagire simultaneamente con contenuti differenti.

In ambiente NodeJS un processo viene rappresentato dall’avviamento di un thread principale al quale si associano diversi thread operanti in background; viene così generata una coda prodotta dalla coordinazione tra il main thread e i thread in background; tale dinamica prevede che il primo estragga i task dalla coda nell’ordine in cui vengono prodotti e li esegua.

Si tratta di un meccanismo differente da quello di strumenti basati sul parallelismo dei task su thread indipendenti, non sempre esso si traduce nell’opzione migliore per la gestione delle connessioni, ma rimane il vantaggio derivante dalla gestione semplificata della concorrenza.

Prestazioni

Riprendendo l’modello dei siti Web dedicati all’e-commerce, è interessante sottolineare come NodeJS rappresenti un environment ottimale per ottenere performance di alto livello. Recenti rilevazioni sottolineano come, ad adesso, i visitatori concedano mediamente non più di 3 secondi al caricamento di una pagina prima di abbandonarla, è poi probabile che con il continuo incremento delle velocità di connessione questo intervallo sia destinato ad assottigliarsi alla esame di una user experience sempre più vicina a quella nativa.

Da questo punto di vista NodeJS ha dalla sua parte la compilazione JiT (Just in Time) basata sul JavaScript engine V8 per la traduzione dinamica. La compilazione JiT garantisce fasi di avviamento che possono tradursi in prestazioni vicine a quelle ottenibili tramite una compilazione diretta in linguaggio macchina, tale risultato è possibile unendo le potenzialità della compilazione bytecode alla compilazione nativa.

Comunicazioni asincrone

NodeJS supporta le comunicazioni asincrone e consente di veicolare i dati quando disponibili per la trasmissione, in questo modo vengono praticamente rimosse le latenze dovute all’interscambio client server nella richiesta dei servizi. Tale caratteristica rende l’environment un backend ideale per le Web application, offrendo tempi di attivazioni prossimi alle esperienze native.

Anche in questo caso entra in videogame il motore JavaScript V8 e la conversione dello stesso JavaScript non in byte code ma in linguaggio macchine nativo; inoltre, V8 non presiede soltanto alle fasi di compilazione ed avviamento del codice sorgente, ma gestisce anche l’allocazione in memoria degli oggetti e la garbage collection degli oggetti non più necessari.

Conclusioni

Non è necessario sostenere che NodeJS sia una soluzione migliore di altre per sottolineare quanto questo ambiente rappresenti uno strumento ottimale per lo sviluppo, si consideri però che parliamo di una competenza che (come sta già accadendo) sarà sempre più richiesta ai developer, è quindi caldamente consigliato inserire l’utilizzo di NodeJS tra le proprie skill.

Per approfondire: Brainvire






Source link

Send this to a friend