Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Производительность

Зачем

Обеспечить достижение атрибутов качества архитектуры ПО - характеристика производительности.

Паттерны

Приложение back-end

  • кэш вывода, данных (sqldependency)
  • денормализация
  • Масштабирование: горизонтальный ( рядом новый сервер), вертикальные (ядер, памяти и ТП)
  • Решение принимаем по каждому виду данных/бизнес сущности отдельно.
  • Ищем баланс с учетом
    • размера данных
    • стоимости их вычисления/чтения с HDD
    • вероятности их повторной востребованности
    • размера, который они занимают в кэше/частоты изменения данных/того
    • насколько “болезненно” будет для пользователя получение “устаревших” данных из кэша

Приложение front-end

Паттерны:

  • Compression
    • Compress files and minimize data size before transmission to reduce network load.
  • Selective Rendering/Windowing
    • Display only visible elements to optimize rendering performance. For example, in a dynamic list, only render visible items.
  • Modular Architecture with Code Splitting
    • Split a bigger application bundle into multiple smaller bundles for efficient loading.
  • Priority-Based Loading
    • Prioritize essential resources and visible (or above-the-fold) content for a better user experience.
  • Pre-loading
    • Fetch resources in advance before they are requested to improve loading speed.
  • Tree Shaking or Dead Code Removal
    • Optimize the final JS bundle by removing dead code that will never be used.
  • Pre-fetching
    • Proactively fetch or cache resources that are likely to be needed soon.
  • Dynamic Imports
    • Load code modules dynamically based on user actions to optimize the initial loading times.

Мониторинг:

  • JavaScript
    • существует инструмент под названием Navigation Timing API, который позволяет собирать на стороне клиента данные по скорости страницы, продолжительности DNS resolve, передачи данных по сети, работы на Backend’е, отрисовки страницы.

СУБД

Сеть