Коротко о frontend performance.
Насмотрелся я как-то видео и начитался статей о performance в мире frontend и решил задокументировать кратко походы. Подробное описание можно найти в интернете или в литературе внизу. Итак мой список пунктов связанных с performance, которые можно использовать для улучшения\оценки производительности:
Производительность кода
Производительность сборки
Производительность мозга (mind tricks)
Литература
Производительность кода
- Оптимизируйте код (например HashMap вместо Array)
 - Профайл для поиска узких мест
 - WebWorker для ресурсоемких операций
 - Server-side rendering
 - PWA
 - defer\async in HTML
 - Разделять чтение дома и запись, например fast-dom библиотека
 - СSS анимации выполняются на gpu в отличие от js
 - requiestAnimationFrame
 - will-transform
 - dom layout (через transfomZ(0) или will-change: transform)
 - изменение innerHtml или размера ведет к перерисовке всего документа\слоя
 - dns-prefetch, preconnect, prefetch, pretender, preload
 
Производительность сборки
- CDN (сервер должен быть ближе к клиенту)
 - HTTP Cache Headers
 - WebP images
 - WOFF2 fonts или стандартные системные
 - Code-splittind
 - Tree-shaking
 - Core js\css load immediatelly and advanced js\css on DomContentLoaded (extra on Load)
 - Service Worker for HTTPS
 - Brotli or Zopfli compression (+20%)
 - js\css minification, lazy sourcemaps
 - image minification с потерей качества
 - icons in base64
 
Производительность мозга (mind tricks)
- Что бы разница была заметна нужна разница в 20% времени
 - 100ms response
 - 16ms for frame
 - 1.25sec for interaction (3sec for 3G)
 - Предсказывать поведение пользователя (например при hover на search можно начать подгружать результат)
 - 14 kb for critical.css
 - как можно быстрее перевести пользователя из пассивного ожидания в активное
 - наприсовать сначала видимую часть, потом подгрузить все что ниже по скроллу или на другом state-route
 
Литература
- https://www.smashingmagazine.com/2016/12/front-end-performance-checklist-2017-pdf-pages/
 - https://medium.com/reloading/javascript-start-up-performance-69200f43b201
 - https://www.youtube.com/watch?v=HlKijvTa_h0
 - https://www.youtube.com/watch?v=ghcfHBEe1u4
 - https://www.youtube.com/watch?v=Tiv_9uweA7w
 - https://www.youtube.com/watch?v=lgPs_hnIA_M
 - https://www.youtube.com/watch?v=i9cOoipvST8&feature=youtu.be&list=PL8sJahqnzh8JST_ZwTcGG1FHGgKBMcpn6
 - https://www.youtube.com/watch?v=7-d3O-7aus0
 - https://www.sitepoint.com/check-css-animation-performance-with-the-browsers-dev-tools/
 
Комментарии
Отправить комментарий