YeaHub Tech
484 subscribers
169 photos
15 videos
2 files
201 links
Новые технологии, советы и обучающие материалы

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#browser #rendering #optimization

Как работает рендеринг веб-страницы в браузере?


Когда вы открываете веб-сайт, ваш браузер выполняет множество сложных процессов, чтобы превратить HTML, CSS и JavaScript в изображение на экране. Рассмотрим ключевые этапы рендеринга:

1️⃣ Парсинг: создание DOM и CSSOM
Вместе они описывают структуру страницы и стили для каждого элемента.

2️⃣ Создание Render Tree
На основе DOM и CSSOM создается Render Tree, где браузер определяет, какие элементы должны быть отображены и как они выглядят.

3️⃣ Layout
Браузер вычисляет ширину, высоту и координаты каждого элемента, начиная с корневого <html> и постепенно проходя все дочерние узлы. Этот процесс называют компоновкой.

4️⃣ Paint
После определения размеров и позиций браузер решает, в каком порядке рисовать элементы (например, с учетом z-index). Для этого создаются Paint Records — инструкции для отрисовки.

5️⃣ Compositing
Элементы, которые находятся на разных слоях (например, с opacity или transform), объединяются в единую картинку. Здесь браузер использует аппаратное ускорение: часть задач передается на видеокарту (GPU). Это ускоряет работу интерфейсов, особенно для анимаций.


Как оптимизировать рендеринг?

- Аппаратное ускорение (GPU): Используется для сложных графических операций (анимация, фильтры)

- FLIP-анимации: Позволяют избегать перерасчета layout. Элемент сразу помещается в финальную точку, а визуально стартует с помощью transform

- Свойство will-change: Заранее выделяет ресурсы для элементов, которые будут изменяться


Зачем это знать?

1. Избегать ненужных перерасчетов layout
2. Писать оптимизированный код для интерфейсов
3. Улучшать пользовательский опыт за счет повышения скорости работы страниц


Браузер — это сложный механизм, а грамотная разработка позволяет использовать его возможности максимально эффективно.

👍 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1🤝1
#Optimization

🔋 КОД, КОТОРЫЙ НЕ ЕСТ БАТАРЕЙКУ

Сегодня поговорим о том, о чём часто забывают, пока ноут не сядет посреди важного созвона — энергоэффективности кода.

Все знают про оптимизацию скорости, а сколько ватт жрёт ваш код? Один бесконечный цикл на сотне устройств — и привет, счёт за электричество.


7 приёмов для экономии энергии в коде:

1️⃣ Выбирайте правильные алгоритмы

Быстрая сортировка vs пузырьковая — это не только скорость, но и меньше операций → меньше энергии. На больших данных разница колоссальная!


2️⃣ Добавляйте сон в циклы

```python
# Не надо так 😐
while True:
check_for_updates()

# Надо так 😌
while True:
check_for_updates()
time.sleep(10) # CPU говорит спасибо
```


3️⃣ Ленивая инициализация — ваш друг

Не грузите тяжёлые объекты, пока они реально не понадобятся. Особенно важно для мобилок!


4️⃣ Умный кэш

Кэш экономит вычисления, но может пожирать память. Добавляйте TTL и механизмы очистки.


5️⃣ Асинхронность рулит


async def periodic_task():
while True:
await do_something()
await asyncio.sleep(10)

Когда задача отложена, CPU может перейти в энергосберегающий режим.


6️⃣ Компиляторы и флаги оптимизации

GCC с флагами -O3 -march=native творит чудеса для C/C++ кода.


7️⃣ UI тоже важен

Тёмные темы на OLED реально экономят заряд. Лишние анимации гоняют GPU и съедают батарейку.


Энергосберегающий код — это не отдельная дисциплина, а стиль мышления. Постоянно спрашивайте себя: "А нужно ли запускать всё это прямо сейчас и именно так?"


А какие трюки для экономии энергии используете вы? Делитесь в комментах! ⬇️


🎙 Новости

📝 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1