risultati dello studio sulle prestazioni dei diversi metodi di estrazione di una raccolta di risorse, utilizzando i protocolli per l'accesso al server HTTP/1.1, HTTP/2 e HTTP/2 + Server Push. Nella ricerca è stata anche valutata l'influenza delle prestazioni nella memorizzazione dei dati richiesti nella cache del browser e nella manipolazione delle risorse a livello della logica operativa dell'applicazione (riduzione delle risorse in un unico blocco JSON).
Il test delle prestazioni per l'esecuzione di 25 richieste ha mostrato, nel complesso, risultati prevedibili: un notevole ritardo nella richiesta tramite HTTP/1.1 con cache vuota e la leadership nell'erogazione delle risorse da un solo blocco (test con etichetta «compound»). Le prestazioni di Firefox e Chrome erano all'incirca allo stesso livello, ma la presenza di dati nella cache non ha portato al previsto aumento di efficienza.
Tuttavia, nel test con 500 richieste è emerso un notevole ritardo di Chrome rispetto a Firefox nella trasmissione di un gran numero di richieste, e un ritardo di Firefox rispetto a Chrome nell'uso del meccanismo Server Push e nella situazione di utilizzo di HTTP/2 con la maggior parte dei dati nella cache del browser. Chrome ha mostrato un funzionamento più efficiente con la cache, mentre Firefox una gestione più efficace delle richieste esterne.
Al termine dei test, si è giunti alla conclusione che HTTP/2 consente di gestire abbastanza efficacemente richieste separate di una grande raccolta di risorse. Le differenze di prestazioni tra schemi semplici di erogazione separata delle risorse e metodi in cui le risorse vengono aggregate in un unico blocco non sono così significative da giustificare un notevole complicamento della logica di elaborazione sul lato dell'applicazione e server. L'aggregazione ha senso solo in situazioni in cui le prestazioni hanno la massima priorità. Quando è più importante semplificare la logica e avere un'API semplice, ha senso utilizzare l'elaborazione separata delle risorse.
Un'altra conclusione è che la cache del browser, nell'uso di HTTP/2, non ha un impatto significativo sulle prestazioni nell'elaborazione delle richieste (l'esecuzione completa di 501 richieste è risultata più lenta rispetto all'esecuzione di 51 richieste con un riempimento della cache del 90%, rispettivamente di 1,2 volte in Firefox e di 2,3 volte in Chrome). L'uso di Server Push non ha mostrato vantaggi significativi in Firefox, ma si è rivelato efficace nel caricamento di un gran numero di risorse in Chrome. Gli autori dello studio hanno anche notato che l'ottimizzazione della parte server ha un impatto più sostanziale sulle prestazioni rispetto all'ottimizzazione del codice client eseguito nel browser.
Fonte: opennet.ru
