Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια σας,

συζητούσα με τους προγραμματιστές μας αλλά δεν βρήκαμε κάποια απάντηση και δεν επέμεινα γιατί ενοχλούνται όταν τους ρωτάς κάτι κι έτσι εκνευρίζομαι κι εγώ με τη σειρά μου..

 

το ερώτημα είναι αν μπορούν να ανιχνευθούν, για μια Α μεμονωμένη και συγκεκριμένη περίπτωση, δλδ για μια συγκεκριμένη σελίδα, σε ένα συγκεκριμένο server, και ένα συγκεκριμένο χρήστη, (και έστω πως εξαιρούμε θέματα routing κτλ), τα παρακάτω:

 

1) ο χρόνος άφιξης του πακέτου request που στέλνει ένας χρήστης προσπαθώντας να επισκεφεθεί μια συγκεκριμένη σελίδα, στον server που φιλοξενεί την ιστοσελίδα

2) ο χρόνος αποστολής του πακέτου (που περιέχει το κώδικα της σελίδας), από τον server στον χρήστη

3) ο χρόνος παραλαβής του παραπάνω πακέτου από τον χρήστη

4) ο χρόνος που διαρκεί το rendering στον browser

και πώς?

 

το άλλο ερώτημα είναι βέβαια αν υπάρχει κάτι άλλο έξω από αυτά (και θεωρώντας ότι η σελίδα δεν τραβάει τπτ άλλο από άλλους server) που αυξάνει το τελικό χρόνο φόρτωσης μιας σελίδας

 

ευχαριστώ πολύ, αν οι απαντήσεις είναι πολύ τεχνικές θα χρειαστώ λίγο χρόνο για να τις κατανοήσω :)

Δημοσ.

δε νομίζω πως γινεται οπως το εχεις στο μυαλό σου.Αλλα αφου μιλάμε για μια μονο σελίδα οκ

 

Αν παρακολουθεις τα πακετα μπορεις να πεις ποτε ηρθε και ποτε στελνει απαντηση ο σερβερ και ποτε τελειώνει να στελνει απαντηση. Το ποσο χρονο θελει να κανει render ο χρηστης δεν μπορεις να ξερεις ακριβως ειναι δυκολο εκτος αν εχει καποιο script που σου στελνει το χρονο rendering..

 

βεβαια το παραπανω κανενα νοημα δεν εχει πρακτικά.

 

Πολλα αυξανουν το χρονο.

Ποσοι ρουτερ ειναι αναμεσα στο server , ποιοτητα συνδεσης,φορτος του server,αν εχει cache,ρυθμισεις του server,το hardware του και το δικτυο γενικά.

Δημοσ.

Άν και υποψιάζομαι ότι κάποιο γλάρο έχει η σούπα, τέσπα.

 

Aν "server" == π.χ. apache, TOTE, τα 1 & 2 μάλλον μπορείς να τα δείς από τα Log files του server.

Το 3 μάλλον μπορείς να το δείς από διάφορα browser plugins. Π.χ. από το Console του "Web Developer" plugin του firefox μπορείς να δείς πότε ξεκινά το ΑΡΧΙΚΟ request και με ποιά σειρά έρχονται τα "κομμάτια" κάποιας σελίδα και σε πόσο χρόνο επέστρεψε το κάθε κομμάτι σε σχέση με το ΑΡΧΙΚΟ request.

Το 4 είναι δυσκολάκι/ακατορθωτάκι.

Π.χ. η αρχική σελίδα του insomnia θέλει 60 HTTP request (YSlow says so), τα οποία είναι: 1 html/text, 10 javascripts, 4 CSS files, 26 CSS images, 17 images, 2 Favicons (τώρα, αύριο/σε 5 λεπτά μπορεί να έχουν αλλάξει).

Άντε βρές με ποιά σειρά τα κάνει render ο Firefox/ΙΕ/Opera/Chrome.

Άντε και τα μέτρησες αυτά. Πού τα μέτρησες; Στο δικό μου PC; (τούμπανο) ή στο PC της θειάς μου (χρέπι);

Καθώς άλλους χρόνους θα δείξει το ένα και άλλους το άλλο ;)

 

Ελπίζω να μην σε φώτησα. :)

 

Υ.Γ.

"συζητούσα με τους προγραμματιστές μας αλλά δεν βρήκαμε κάποια απάντηση και δεν επέμεινα γιατί ενοχλούνται όταν τους ρωτάς κάτι κι έτσι εκνευρίζομαι κι εγώ με τη σειρά μου.."

Εμ, δεν είσαι το αφεντικό :P

Άν ήσουν, χοροπηδώντας θα στο απαντούσαν :devil:

Δημοσ.

Off the top of my head να πω ότι υπάρχουν software πακέτα που κάνουν αυτό που ζητάς (και free επίσης).

 

Ένα συγκεκριμένο σχόλιο για τα βήματα 2 και 3: στην πραγματικότητα είναι πολύ πιο περίπλοκα από τη διατύπωσή σου (βασικά δεν είναι ένα πακέτο που πρέπει να έρθει, και κάποια από τα πακέτα όταν φτάσουν στον browser τον κάνουν να ζητήσει κι άλλα πακέτα για τα οποία νωρίτερα δε μπορούσε να ξέρει κλπ). Τα developer tools του Chrome (CTRL+SHIFT+J) και το Firebug σου δείχνουν ακριβώς το τι συμβάινει σ' αυτά τα βήματα με μεγάλη λεπτομέρεια.

 

Για το βήμα 4: και αυτό το κάνει ο Chrome με τα ενσωματωμένα dev tools, δεν ξέρω τι ισχύει σε άλλους browsers.

 

Δες τα screenshots που επισυνάπτω.

post-220054-0-13508300-1323443120_thumb.jpg

post-220054-0-39229500-1323443131_thumb.jpg

Δημοσ.

ευχαριστώ πολύ για τις απαντήσεις

(παρεμπιπτόντως: δεν πήγα σε κανένα προγραμματιστή να τον πρήξω να μου χρονομετρήσει τα παραπάνω, ούτε ξεκίνησε από εκεί η συζήτηση)

 

έγραψα για συγκεκριμένη περίπτωση αντί να γράψω μακρύτερο κείμενο που να εξηγώ πως αντιλαμβάνομαι ότι υπό πραγματικές συνθήκες δεν είναι (ίσως) μετρήσιμα αλλά ούτε αξιολογήσιμα κάποια στοιχεία

 

η συζήτηση που κάναμε ήταν για ένα project λίγο διαφορετικό, όπου ο ίδιος client ζητάει εκατοντάδες φορές περίπου τα ίδια πράγματα ξανά και ξανά, από τον ίδιο server και μιλάμε για αρκετά μεγαλύτερα νούμερα από ότι συνήθως σε όλα τα στοιχεία

το πιο πιθανό είναι να μην βγάζει πουθενά η μελέτη των στοιχείων που συζητάμε για τους ίδιους λόγους που δεν βγάζει πουθενά και σε μια συνηθισμένη σελίδα, δλδ γιατί η σχέση μεταξύ της μεταβλητότητας των στοιχείων και του πληθυσμού του δείγματος είναι δυσανάλογη

όμως μου πέρασε από το μυαλό ότι κανένας δεν γνωρίζει αυτή τη στιγμή από ποιο σημείο ακριβώς και μετά βγαίνουν χρήσιμα συμπεράσματα

για αυτό λοιπόν, τηρουμένων και των προτεραιοτήτων σκέφτηκα αν θα μπορούσε κάποιος να το ερευνήσει

αλλά για να γίνει αυτό πρώτα θα πρέπει να υπάρχει τρόπος για να γίνει, δλδ εργαλεία που να καταγράφουν αν όχι όλα, τουλάχιστον αρκετά στοιχεία

έτσι ξεκίνησαν και τα παραπάνω ερωτήματα

 

από αυτά που γράψατε (σημειώστε εν τω μεταξύ ότι δεν έχω ιδέα από web developing - απλά δεν το γραψα από την αρχή για να εξοικονομήσω κείμενο, αλλά ότι γράψατε μέχρις στιγμής έγινε κατανοητό) βλέπω ότι κάποια στοιχεία είναι ανιχνεύσιμα

με κάποιες πραγματικές δοκιμές όταν γίνει launch ίσως μπορέσουμε να ανιχνεύσουμε κι άλλα στοιχεία αφαιρετικά ή να δούμε αν κάποια από αυτά έχουν αυξημένη ή μειωμένη βαρύτητα χρησιμοποιώντας και τεχνικές για να δούμε πως φαίνεται απέξω η σελίδα και οι υπηρεσίες της

αλλιώς πιθανόν να δούμε τελικά πως είναι ανούσιο

 

αυτά

 

"Άν και υποψιάζομαι ότι κάποιο γλάρο έχει η σούπα, τέσπα."

αυτό δεν το κατάλαβα καθόλου, οπότε υποθέτω δεν με αφορά κιόλας

 

"Εμ, δεν είσαι το αφεντικό. Άν ήσουν, χοροπηδώντας θα στο απαντούσαν"

μπα, καμμιά σχέση, στο αφεντικό ότι και να τους πει του απαντούν 'δεν γίνεται'

πχ:

'τι γίνεται παιδιά, ζέστη σήμερα έ?'

'δεν γίνεται, έχει πρόβλημα η βάση δεδομένων'

αυτή είναι η επικοινωνία τους

Δημοσ.

εγώ πιστεύω πως δε μπορείς να κάνεις και πολλά για να βελτιώσεις τη ταχύτητα που θα εμφανιστεί μια σελίδα, γιατί όπως προαναφέρθηκε υπάρχουν πολλοί παράγοντες που συντελούν στον εκάστοτε χρόνο φόρτωσης.

 

Ίσως, το μόνο που μπορείς να κάνεις, είναι να καθορίσεις με ποια σειρά θα φορτώνουν τα elements της σελίδας (πχ. να αφήνεις τις φωτογραφίες να φορτώνουν τελευταίες για να προλάβει να στηθεί ολόκληρη η σελίδα πιο γρήγορα)

Δημοσ.

εγώ πιστεύω πως δε μπορείς να κάνεις και πολλά για να βελτιώσεις τη ταχύτητα που θα εμφανιστεί μια σελίδα, γιατί όπως προαναφέρθηκε υπάρχουν πολλοί παράγοντες που συντελούν στον εκάστοτε χρόνο φόρτωσης.

 

Δεν το καταλαβαίνω αυτό. Δηλαδή μια σελίδα που σηκώνω για την πλάκα μου με Apache από το laptop μου σε σχέση με π.χ. την αρχική του yahoo.com δεν έχει και πάρα πολλές διαφορές σε ταχύτητα; Ας πούμε δηλαδή αν το yahoo σηκώνει 1000 χρήστες τη μέρα το laptop μου θα σηκώνει ξερω γω 800; :shock:

 

Μπορείς να κάνεις πάρα μα πάρα πολλά. Απλώς το τι ακριβώς είναι αυτό που πρέπει να κάνεις εξαρτάται από το ποιά είναι η κατάστασή σου και ποιό είναι το επιθυμητό αποτέλεσμα.

Δημοσ.

κι εγώ πιστεύω πως το πιο πιθανό είναι να υπάρχουν περιθώρια για αξιόλογη βελτίωση σε συνηθισμένες σελίδες, απλά κάθε σελίδα έχει διαφορετικά σημεία που μπορούν να βελτιωθούν οπότε χρειάζεται ψάξιμο

Δημοσ.

από άποψη κώδικα αναφέρθηκα, ότι δε μπορείς να κάνεις πολλά. Προφανώς η σελίδα σου, όταν είναι τοπικά ανεβασμένη θα έχει απίστευτη ταχύτητα. Όπως και το πόσοι συνδέονται ταυτόχρονα στη σελίδα επηρρεάζει το χρόνο φόρτωσης, αλλά αυτά εξαρτώνται από τον server και όχι από τον κώδικα.

Δημοσ.

από άποψη κώδικα αναφέρθηκα, ότι δε μπορείς να κάνεις πολλά. Προφανώς η σελίδα σου, όταν είναι τοπικά ανεβασμένη θα έχει απίστευτη ταχύτητα. Όπως και το πόσοι συνδέονται ταυτόχρονα στη σελίδα επηρρεάζει το χρόνο φόρτωσης, αλλά αυτά εξαρτώνται από τον server και όχι από τον κώδικα.

 

HTML/JS minification? Asset compression και gzip? Cache control headers? Ελαχιστοποίηση των HTTP requests και σπάσιμο των pipelines? Ανέβασμα static content σε CDN?

 

Και δεν είναι καν η δουλειά μου αυτά τα πράγματα...

Δημοσ.

Όπως πολύ σωστά λέει και ο defacer είναι πάρα πολλά που μπορεί να κάνει ένας Webmaster ώστε να βελτιώσει την ταχύτητα φόρτωσης.

Όπως επίσης ειναι πάρα-πάρα πολλά αυτά που μπορεί να κάνει ένας sys admin για να βελτιώσει την ταχύτητα του web server π.χ opcode caching, mysql optimization, apache optimization, χρησιμοποίηση για web server π.χ ngninx ή lighttpd, mysql caching και πολλά ακόμη.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...