parsifal Δημοσ. 15 Νοεμβρίου 2013 Δημοσ. 15 Νοεμβρίου 2013 Σημείωση συντονιστή: έγινε split από το θέμα Επιλογή hosting με συγκεκριμένα κριτήρια.. ...παρόλα αυτά σημαντικό ρόλο παίζει και η φυσική τοποθεσία του server (μία σελίδα με 30 μικρές εικόνες πχ στη κεντρική σελίδα, σε ping 10ms Ελλάδας και 50ms Γερμανίας θα έχουν συνολική διαφορά 30 (hits) x 40ms (διαφορά) = 1.2sec σε ταχύτητα, καθαρά και μόνο λόγω απόστασης. Φυσικά μιλάμε πάντα για ίδια ακριβώς configuration σε servers, χωρίς δηλαδή άλλους παράγοντες που να επηρρεάζουν την ταχύτητα. Δε νομίζω πως ισχύουν οι υπολογισμοί αυτοί. Εξηγούμαι: Οι browsers και οι webservers χρησιμοποιούν pipelining. Αλίμονο αν για κάθε ένα image, CSS και JS asset μίας ιστοσελίδας, περιμέναμε να κατεβαίνουν ένα-ένα σειριακά, από ένα μοναδικό TCP connection! Χονδρικά, η διαφορά στον χρόνο φόρτωσης της ίδιας ακριβώς σελίδας από δύο πανομοιότυπους servers που έχουν διαφορά A msec στο round-trip-time θα πρέπει να είναι: A msec, όσο και το Time-To-First-Byte. Όχι [A x ο αριθμός των assets που περιέχει η σελίδα] msec! 1
gvard Δημοσ. 15 Νοεμβρίου 2013 Δημοσ. 15 Νοεμβρίου 2013 Δε νομίζω πως ισχύουν οι υπολογισμοί αυτοί. Εξηγούμαι: Οι browsers και οι webservers χρησιμοποιούν pipelining. Αλίμονο αν για κάθε ένα image, CSS και JS asset μίας ιστοσελίδας, περιμέναμε να κατεβαίνουν ένα-ένα σειριακά, από ένα μοναδικό TCP connection! Χονδρικά, ο χρόνος φόρτωσης της ίδιας ακριβώς σελίδας από δύο πανομοιότυπους servers με διαφορά A msec στο round-trip-time θα πρέπει να είναι: A msec. Όχι [A x ο αριθμός των assets που περιέχει η σελίδα] msec! Μπορεί να κάνω λάθος, αλλά το default configuration του firefox (about:config) δείχνει το http.pipelining σαν "false". Εσένα το έχει true;
parsifal Δημοσ. 15 Νοεμβρίου 2013 Μέλος Δημοσ. 15 Νοεμβρίου 2013 Αυτή η επιλογή καθορίζει αν θα στέλνεις ή όχι HTTP requests από ένα μοναδικό TCP connection: http://en.wikipedia.org/wiki/HTTP_pipelining HTTP pipelining is a technique in which multiple HTTP requests are sent on a single TCP connection without waiting for the corresponding responses. Οι browsers ανοίγουν ταυτόχρονα πολλαπλά και ανεξάρτητα TCP connections όταν κατεβάζουν μία σελίδα...
gvard Δημοσ. 15 Νοεμβρίου 2013 Δημοσ. 15 Νοεμβρίου 2013 Εχεις μερικώς δίκιο (και έχω μερικώς άδικο), καθώς εξαρτάται από το στήσιμο που έχει γίνει στη σελίδα, πχ αν στην αρχή της σελίδας υπάρχει ένα Javascript τότε ο browser "παγώνει" τα connections και περιμένει να εκτελεστεί το javascript πριν συνεχίσει το downloading της σελίδας. Eπίσης αισθητή διαφορά θα φανεί πχ σε FTP downloading 100 μικρών αρχείων ή 20 e-mail μηνυμάτων.
parsifal Δημοσ. 15 Νοεμβρίου 2013 Μέλος Δημοσ. 15 Νοεμβρίου 2013 Εχεις μερικώς δίκιο (και έχω μερικώς άδικο), καθώς εξαρτάται από το στήσιμο που έχει γίνει στη σελίδα, πχ αν στην αρχή της σελίδας υπάρχει ένα Javascript τότε ο browser "παγώνει" τα connections και περιμένει να εκτελεστεί το javascript πριν συνεχίσει το downloading της σελίδας. Αυτά στην εποχή του IE7. Εξηγεί καλύτερα ο Steve Souders εδώ: http://www.stevesouders.com/blog/2010/02/07/browser-script-loading-roundup/ 1
gvard Δημοσ. 15 Νοεμβρίου 2013 Δημοσ. 15 Νοεμβρίου 2013 Το link που έδωσες λέει ακριβώς αυτό που λέω και εγώ: το loading των εικόνων γίνεται blocked όσο φορτώνονται τα javascript. Μπορεί πλέον δηλαδή να φορτώνονται 3 javascript μαζί, αλλά τα connections για εικόνες κλπ παγώνουν *(τελευταία παράγραφος του post του το αναφέρει αυτό).
parsifal Δημοσ. 15 Νοεμβρίου 2013 Μέλος Δημοσ. 15 Νοεμβρίου 2013 Αυτά συνέβαιναν επί IE7-era, λέμε! Οι σύγχρονοι browsers κατεβάζουν πλέον και εικόνες και CSS ταυτόχρονα με JS scripts: http://www.browserscope.org/?category=network
gvard Δημοσ. 15 Νοεμβρίου 2013 Δημοσ. 15 Νοεμβρίου 2013 Χμμ, οπότε από ότι φαίνεται από το τελευταίο link σου, η σωστή απάντηση είναι κάπου στη μέση. Μία σελίδα με 80 requests (πχ το site μας) δεν θα κάνει ούτε τον χρόνο επιπλέον που ανέφερα πριν (80 x 50ms) αλλά ούτε τον χρόνο που ανέφερες εσύ (50ms), αλλά εφόσον γίνονται 6 concurrent connections θα κάνει 80 / 6 = 13.33 x 50ms = 666ms επιπλέον. Σωστά;
parsifal Δημοσ. 15 Νοεμβρίου 2013 Μέλος Δημοσ. 15 Νοεμβρίου 2013 Λάθος. Για κάθε GET request που ικανοποιείται, απελευθερώνεται 1 από τα 6 TCP connections που έχει ανοίξει ο browser και πλέον μπορεί να το επαναχρησιμοποιήσει για να ζητήσει και να αρχίσει να κατεβάζει το επόμενο από τα assets που χρειάζεται. Δεν χρειάζεται να περιμένει να τελειώσουν τα υπόλοιπα 5. Εκτός αν στον υπολογισμό σου θεωρείς ότι όλα τα assets γκρουπάρονται από πριν σε ομάδες των 6 και για κάθε 6άδα, τα requests και τα transfers αρχίζουν και τελειώνουν την ίδια πάντα στιγμή. Το οποίο στην πράξη δε συμβαίνει ποτέ. Απλοϊκό παράδειγμα, θα το τραβήξω λίγο στα άκρα για να καταλάβεις τη λάθος λογική στους υπολογισμούς σου: Έχεις στη σελίδα σου μία πολύ μεγάλη εικόνα, αρκετές εκατοντάδες Kilobytes. Όσο αυτή κατεβαίνει από το 1 TCP connection, από τα υπόλοιπα 5 connections μπορεί να έχουν αρχίσει και να έχουν ολοκληρωθεί πολλά GET requests και transfers για μικρότερου μεγέθους assets, εκμηδενίζοντας την αρνητική επίπτωση που έχει η διαφορά του round-trip-time στη μία και στην άλλη περίπτωση (server σε ελληνικό datacenter vs γερμανικό datacenter). Η μεγάλη εικόνα καταλήγει λοιπόν ο «αδύναμος κρίκος» συνολικά στο loading time της σελίδας σου.
Thiseas! Δημοσ. 20 Νοεμβρίου 2013 Δημοσ. 20 Νοεμβρίου 2013 Εκτός από το να παραθέτουμε θεωρητικές προσεγγίσεις οι οποίες φυσικά και είναι απόλυτα σεβαστές αφού (τουλάχιστον) όλοι μαθαίνουμε από αυτές, γιατί να μην δοκιμάζαμε να μετρήσουμε και οι ίδιοι; Σε αυτή την περίπτωση ελέγχουμε και τον ενδεχόμενο να λυθούν και οι παραπάνω "απορίες" περί αν φορτώνονται τα CSS μαζί με τα JS και μαζί με τα IMAGES... και γενικά να κάνουμε ένα simulation per browser... Προτείνω λοιπόν: http://tools.pingdom.com/fpt/ http://www.webpagetest.org/
parsifal Δημοσ. 20 Νοεμβρίου 2013 Μέλος Δημοσ. 20 Νοεμβρίου 2013 Εξαρτάται από το πόσο «δίκαιη» σύγκριση θέλεις να κάνεις: Αν βρεθούν δύο servers με πολύ (πολύ όμως) κοντινά χαρακτηριστικά (hardware, software, υποδομή δικτύου στο datacenter κλπ κλπ) με μόνη διαφορά την τοποθεσία, και στηθεί η ίδια σελίδα και στους δύο, τότε θα έχει νόημα να πάρεις συγκριτικές μετρήσεις. 1
Thiseas! Δημοσ. 21 Νοεμβρίου 2013 Δημοσ. 21 Νοεμβρίου 2013 Εξαρτάται από το πόσο «δίκαιη» σύγκριση θέλεις να κάνεις: Αν βρεθούν δύο servers με πολύ (πολύ όμως) κοντινά χαρακτηριστικά (hardware, software, υποδομή δικτύου στο datacenter κλπ κλπ) με μόνη διαφορά την τοποθεσία, και στηθεί η ίδια σελίδα και στους δύο, τότε θα έχει νόημα να πάρεις συγκριτικές μετρήσεις. Η λέξη "δικαιοσύνη" είναι μερικές φορές (πράγματι) θολή όταν κάποιος θέλει να συγκρίνει τέτοια μεγέθη. Κατά την ταπεινή μου γνώμη αρκεί να χρησιμοποιήσεις τους servers (hosting, VPS, Dedi, Cloud, ElasticHosting ή ότι είναι) στους οποίους θα στήσεις και live το site σου. Αυτό είναι το πιο κοντινό test στην... "πραγματικότητα".
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα