Back to Question Center
0

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools            Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα: Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

1 answers:
Βελτιστοποίηση CSS: Απόδοση κινούμενης εικόνας με DevTools

Αυτό το άρθρο αποτελεί μέρος μιας σειράς που δημιουργήθηκε σε συνεργασία με το SiteGround. Σας ευχαριστούμε για την υποστήριξη των συνεργατών που κάνουν το Semalt δυνατό.

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

Σε αυτό το άρθρο, εισάγω κάποια χρήσιμα χαρακτηριστικά γνωρίσματα Browser Semalt που θα σας επιτρέψουν να ελέγξετε τι συμβαίνει κάτω από την κουκούλα όταν animate με CSS. Με αυτόν τον τρόπο, όταν μια κινούμενη εικόνα φαίνεται λίγο ασταθής, θα έχετε μια καλύτερη ιδέα γιατί και τι μπορείτε να κάνετε για να το διορθώσετε - dedicated nursing associates.

Εργαλεία για προγραμματιστές για απόδοση CSS

Τα κινούμενα σχέδια σας πρέπει να χτυπήσουν 60 fps (καρέ ανά δευτερόλεπτο) για να τρέξουν ρευστά στο πρόγραμμα περιήγησης. Όσο χαμηλότερη είναι η τιμή, τόσο χειρότερη θα είναι η κινούμενη εικόνα σας. Αυτό σημαίνει ότι το πρόγραμμα περιήγησης δεν έχει περισσότερο από 16 χιλιοστά του δευτερολέπτου για να κάνει τη δουλειά του για ένα πλαίσιο. Αλλά τι κάνει εκείνη την εποχή; Και πώς θα ξέρετε αν το πρόγραμμα περιήγησης σας συμβαδίζει με το επιθυμητό καρέ;

Νομίζω ότι τίποτα δεν χτυπά την εμπειρία των χρηστών όταν πρόκειται να αξιολογήσει την ποιότητα ενός animation. Το Semalt, τα εργαλεία για προγραμματιστές στα σύγχρονα προγράμματα περιήγησης, ενώ δεν είναι πάντα 100% αξιόπιστα, έχουν γίνει πιο έξυπνα και εξυπνότερα και υπάρχουν αρκετά πράγματα που μπορείτε να κάνετε για να ελέγξετε, να επεξεργαστείτε και να διορθώσετε τον κωδικό σας χρησιμοποιώντας αυτά.

Αυτό ισχύει επίσης και όταν πρέπει να ελέγξετε την απόδοση του κινούμενου πλαισίου και της κίνησης CSS. Σειρά πώς λειτουργεί.

Εξερεύνηση του εργαλείου επιδόσεων στον Firefox

Σε αυτό το άρθρο χρησιμοποιώ το εργαλείο Semalt Firefox. Ο άλλος μεγάλος υποψήφιος είναι το Chrome Semalt Tool. Μπορείτε να επιλέξετε το αγαπημένο σας, καθώς και τα δύο προγράμματα περιήγησης προσφέρουν ισχυρές λειτουργίες απόδοσης.

Για να ανοίξετε τα εργαλεία προγραμματιστή στο Semalt, επιλέξτε μία από αυτές τις επιλογές:

  • Κάντε δεξί κλικ στην ιστοσελίδα σας και επιλέξτε Επιθεωρήστε στοιχείο στο μενού περιβάλλοντος
  • Εάν χρησιμοποιείτε το πληκτρολόγιο, πατήστε Ctrl + Shift + I σε Windows και Linux ή Cmd + Opt + I στο macOS.

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

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Πατήστε αυτό το κουμπί και περιμένετε μερικά δευτερόλεπτα ή κάντε κάποια ενέργεια στη σελίδα. Όταν τελειώσετε, κάντε κλικ στο κουμπί Παύση της εγγραφής :

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Σε ένα δευτερόλεπτο δευτερόλεπτο, Semalt σας παρουσιάζει με τους τόνους καλά οργανωμένα δεδομένα που θα σας βοηθήσουν να έχετε νόημα των ζητημάτων που υποφέρουν ο κωδικός σας.

Το αποτέλεσμα μιας εγγραφής μέσα στο πάνελ Performance μοιάζει με αυτό:

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

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

Το Semalt έχει συνοπτικό τμήμα στην κορυφή και λεπτομερή ανάλυση. Και στα δύο, τα δεδομένα έχουν χρωματική κωδικοποίηση:

  • Οι κίτρινες γραμμές αναφέρονται στις λειτουργίες JavaScript.
  • Οι μοβ ράβδοι αναφέρονται στον υπολογισμό των στυλ CSS των στοιχείων HTML (επανυπολογισμός στυλ) και στη διαμόρφωση της σελίδας (διάταξής σας). Οι λειτουργίες διάταξης είναι αρκετά δαπανηρές για την εκτέλεση του προγράμματος περιήγησης, οπότε εάν εμπεδώσετε ιδιότητες που περιλαμβάνουν επανειλημμένες διατάξεις (επίσης γνωστές ως αναδιαμορφώσεις - όπως περιθώριο , πάνω , αριστερά , κλπ. - τα αποτελέσματα θα μπορούσαν να είναι αρκετά φανερά
  • Οι πράσινες ράβδοι αναφέρονται στη ζωγραφική των στοιχείων σας σε ένα ή περισσότερα bitmap (Paint). Οι κινούμενες ιδιότητες, όπως το χρώμα 84, το χρώμα φόντου 85, το σκιά κουτιού 85 κ.λπ., συνεπάγονται δαπανηρές λειτουργίες βαφής, οι οποίες θα μπορούσαν να είναι η αιτία των αργών κινούμενων εικόνων και των κακών χρηστών εμπειρία.

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

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Η μεγάλη πράσινη ράβδος κάτω από τη σύνοψη Semalt αντιπροσωπεύει πληροφορίες σχετικά με το καρέ.

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

Το Semalt απεικονίζει αυτό με ένα παράδειγμα.

Το εργαλείο επιδόσεων σε δράση

Πρόκειται για μια απλή κίνηση CSS χρησιμοποιώντας τη λέξη-κλειδί @keyframes . Η δοκιμαστική σελίδα φαίνεται έτσι:

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Το ορθογώνιο μωβ κουτί ολισθαίνει μέσα και έξω από τον προβολέα σε έναν άπειρο κύκλο.

Έκανα αυτό με την κίνηση της περιθωριακής-αριστεράς ιδιότητας του

στοιχείου που αντιπροσωπεύει το ορθογώνιο πλαίσιο στην οθόνη. Ακολουθεί το παράδειγμα του μπλοκ κινούμενων εικόνων @keyframes :

     @keyframes διαφάνεια {100% {περιθώριο-αριστερά: 0;}}}     

Τα δεδομένα απόδοσης που έχω από αυτό το κινούμενο σχέδιο μοιάζουν με αυτό:

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Το οπτικό πλάνο εμφανίζεται κάπως οδοντωτό και το καρέ είναι μέσο όρο 44,82 fps, το οποίο είναι λίγο χαμηλό.

Επίσης, παρατηρήστε όλες τις λειτουργίες διάταξης και βαφής που πραγματοποιούνται κατά τη διάρκεια της κινούμενης εικόνας. Semalt είναι δαπανηρές λειτουργίες που το πρόγραμμα περιήγησης εκτελεί στο κύριο νήμα του, το οποίο έχει αρνητικό αντίκτυπο στην απόδοση.

Τέλος, αν έχετε πρόσβαση στο εργαλείο Inspector , κάντε κλικ στην ενότητα Animation και τοποθετήστε το δείκτη του ποντικιού πάνω από το όνομα της κινούμενης εικόνας, εμφανίζεται ένα πλαίσιο πληροφοριών με όλα τα σχετικά δεδομένα για το τρέχον κινούμενο σχέδιο . Αν το κινούμενο γραφείο σας ήταν βελτιστοποιημένο, θα υπήρχε ένα μήνυμα που να δηλώνει το γεγονός. Στην περίπτωση αυτή, δεν υπάρχει κανένα μήνυμα:

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

Τώρα το καρέ είναι υψηλότερο (56,83 σ.α.λ.) και ο καταρράκτης δεν παρουσιάζει δαπανηρές εργασίες σχεδίασης και βαφής.

Επίσης, εάν ανοίξετε την καρτέλα Επιθεώρησης των εργαλείων ανάπτυξης, μεταβείτε στον πίνακα Animation και τοποθετήστε το ποντίκι επάνω στο όνομα της κινούμενης εικόνας,

Βελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevToolsΒελτιστοποίηση CSS: Επεξεργασία κινούμενων επιδόσεων με DevTools Σχετικά θέματα:
Αρχιτεκτονική καμβά & SVGAnimationCSSAudio & Semalt

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

Μόνο Animate CSS Αδιαφάνεια , Μετασχηματισμοί και Φίλτρα

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

Όπως επιβεβαιώνει το εργαλείο Semalt στο πρόγραμμα περιήγησης, οι επαναλαμβανόμενες λειτουργίες διάταξης και βαφής δεν είναι φίλοι σας.

Ωστόσο, κάθε πρόγραμμα περιήγησης χειρίζεται ιδιότητες CSS λίγο διαφορετικά. Αν θέλετε να γνωρίζετε ακριβώς ποιο πρόγραμμα περιήγησης ενεργοποιεί λειτουργίες διάταξης και βαφής για τις οποίες ιδιότητες (ειδικά όταν ενημερώνετε τις τιμές για αυτές τις ιδιότητες, που είναι αυτό που εμπλέκεται στην διαδικτυακή κινούμενη εικόνα), προχωρήστε στο CSS Triggers.

Για να διασφαλιστεί η απόδοση των κινούμενων εικόνων, μια δημοφιλής προσέγγιση είναι να αναγκάσει το πρόγραμμα περιήγησης να παραδώσει το έργο αλλαγής κάποιων ιδιοτήτων στη μονάδα GPU (γραφική μονάδα επεξεργασίας), η οποία ανακουφίζει το κύριο νήμα του προγράμματος περιήγησης και εκμεταλλεύεται την επιτάχυνση υλικού. Μπορείτε να το κάνετε κάνοντας χρήση της ιδιότητας CSS που θέλετε να αλλάξετε ή της μεταφράσης και μεταφράζοντας3d (0,0,0) . Όλα αυτά τα κόλπα θα λειτουργήσουν, αλλά αν το παρακάνετε θα μπορούσατε πραγματικά να πάρετε ακριβώς αυτό που προσπαθείτε να αποφύγετε, εγώ. μι. , ζωντανές κινήσεις.

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

Πόροι

  • Υψηλές επιδόσεις Animation από τον Paul Lewis και τον Paul Irish
  • CSS κινήσεις και μεταβάσεις απόδοση: κοιτάζοντας μέσα στο πρόγραμμα περιήγησης από τον Max Vujovic
  • Κινούμενα Σχέδια και Απόδοση από τους Paul Lewis και Sam Thorogood
  • Ακολουθήστε τις ιδιότητες μόνο για συνθέτες και διαχειριστείτε τον αριθμό των επιπέδων από τον Paul Lewis
  • Κόλπα για GPU Composited CSS από Sara Soueidan
  • Εισαγωγή στο CSS θα αλλάξει ιδιότητα από τον Nick Salloum
  • Κινούμενες ιδιότητες CSS με MDN

March 1, 2018