Коротко о 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/
Комментарии
Отправить комментарий