2013-01-15 15 views
6

Per un'applicazione molto semplice, il mio sito Meteor richiede 4.1 secondi per iniziare a scaricare il primo byte di dati. Questo è con una configurazione molto semplice. I tempi relativi ecc (tratti da http://www.webpagetest.org) sono:Perché un sito Meteor distribuito richiede così tanto tempo per essere caricato?

IP: 107.22.210.133 
Location: Ashburn, VA 
Error/Status Code: 200 
Start Offset: 0.121 s 
DNS Lookup: 64 ms 
Initial Connection: 56 ms 
Time to First Byte: 4164 ms 
Content Download: 247 ms 
Bytes In (downloaded): 0.9 KB 
Bytes Out (uploaded): 0.4 KB 

questo è dovuto a Meteor essere lento, o c'è probabilità di essere un collo di bottiglia nel mio codice? C'è un modo per determinare questo?

Grazie.

+1

Avete qualche metodo di meteorologia? Hanno richieste HTTP in loro? – Akshat

+0

No: è letteralmente un sito molto semplice con alcuni modelli (reattivi) caricati dinamicamente con il metodo descritto qui http://www.atmayogi.com/2012/11/dynamic-multi-page-applications-with-meteor -for-node-js e backbone per il routing tra i template. Nessuna immagine, non molto CSS e molto poco JS (167,1 KB). La pagina viene caricata e quindi attende alcuni secondi prima che il contenuto venga visualizzato. – cazgp

risposta

5

Tale ritardo è una funzione del tempo impiegato dagli abbonamenti per ottenere dati dal server. Se uno qualsiasi dei dati del documento richiesti dal client al caricamento della pagina è statico, memorizzarlo in raccolte locali non gestite (non sincronizzate) in modo che sia immediatamente disponibile al caricamento iniziale della pagina. Vedere collections.meteor.com per un confronto del tempo di caricamento dei dati memorizzati in un non gestito rispetto a una raccolta gestita.

+1

Grazie per la risposta. I dati mostrati sul caricamento della pagina dipendono fortemente dall'URL, che a sua volta sta visualizzando molti dati da un database. Come raccomandi di implementare ciò che suggerisci? La documentazione di Meteor non è molto chiara sulle raccolte locali non gestite. – cazgp

+3

Stai chiedendo in che modo ho implementato raccolte locali non gestite per creare l'esempio a cui mi sono collegato? Se è così, è proprio come creare collezioni e inserire documenti sul lato server - basta farlo sul client e passare null invece del nome della collezione. – ram1

+0

Quindi falsi i dati o qualcosa del genere? Come fai a sapere quali valori appartengono a quella raccolta, se non provengono dal server? Questa è un'app molto basata sui dati, le collezioni cambieranno sempre e ciò che l'utente vedrà sarà sempre diverso. – cazgp

0

Secondo WebPagetest, questo è:

il tempo necessario per il DNS, presa e SSL negoziati + 100 ms.

Mi è piaciuta la risposta di @ ram1, ma vorrei aggiungere che è anche a causa delle prestazioni del server. Quella quantità di tempo è comune negli hosting condivisi. Ci sono due soluzioni alternative: cambiare il tuo hosting o aggiungere un servizio CDN.

Inoltre, sarà di aiuto se si hanno meno reindirizzamenti.

Si dovrebbe fare un uso migliore delle cache e, per gli utenti di Chrome, è possibile applicare the pre- party caratteristiche.

Problemi correlati