Как стать автором
Обновить
11.8

Клиентская оптимизация *

Делаем сайты удобнее и приятнее

Сначала показывать
Порог рейтинга
Уровень сложности

Кросс-платформенный Rust от и до: GUI + CLI + CI + Docker Реальный опыт доставки DotPlus на Linux и ARM

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров2.1K

Кросс-платформенный Rust от и до: GUI + CLI + CI + Docker Реальный опыт доставки DotPlus на Linux и ARM

Читать далее

Новости

Профайл-виджет для игр

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров710

Привет! Хочу рассказать о небольшом виджете профилирования на ImGUI для игр. Под катом можно узнать о функционале и реализации. А так же заполучить сорцы!

Читать далее

На сколько же медленнее произвольный доступ на самом деле?

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров3.2K

Как вы, наверно, знаете, из-за наличия в компьютере различных кэшей (L1, L2, L3...) и того, что операции с памятью выполняются с линиями кэша размером примерно 64 байт каждая, для обеспечения максимальной производительности мы должны писать программы, обеспечивающие локальность.

(Разумеется, диск здесь не показан)

Но насколько хорошо вы это осознаёте? Допустим, у нас есть массив чисел с плавающей запятой и массив индексов первого массива. Есть программа, складывающая числа из первого массива в порядке, определяемом вторым массивом. То есть в этом примере мы будем складывать ε + α + δ + ζ + β + γ в таком порядке:

Давайте рассмотрим всего два случая: индексы идут в порядке от первого до последнего или в произвольном порядке. До того, как я начал писать этот пост, я не мог ответить ни на один из следующих вопросов:

1. Насколько большим должен быть массив, чтобы разница производительности вычисления в двух порядках стала заметной?

2. Сколько в среднем тратится на каждый элемент в порядке от первого до последнего?

3. Насколько медленнее произвольный порядок последовательного в случае массивов, умещающихся в RAM?

4. Насколько медленнее произвольный порядок последовательного в случае массивов, не умещающихся в RAM?

5. Достаточно ли стандартного тасования Фишера-Йейтса для массивов перемешанных индексов для получения произвольного порядка?

6. Насколько медленнее порядок от первого до последнего в случае массивов, не умещающихся в RAM, при использовании файлов с отображением в память?

7. Максимально ли быстры файлы с отображением в память?

Если вы уже знаете ответы на эти вопросы, то это замечательно! Если же нет, то делайте ваши предположения и проверьте их, прочитав пост.

Читать далее

DotPlus — офлайн-генератор QR и штрихкодов на Rust с GUI и CLI

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.7K

Как я написал генератор QR и штрихкодов на Rust с GUI и CLI — полностью офлайн, без браузеров и API. Работает с CSV, экспортирует в PNG, подходит для логистики и массовой печати.

Читать далее

Что будет, если пригласить на свидание OCR и GPT?

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.7K

Привет, Хабр! Снова на связи Кирилл Пронин, разработчик PIX RPA из PIX Robotics, со мной Александр Сулейкин, Founder DUC Technologies и сегодня мы с вами затронем тему «Что будет, если объединить OCR и GPT?».
Признайтесь честно, видели какие ужасные результаты распознавания выдают современные open source решения для кириллицы? Вряд ли из коробки, можно что-то использовать сразу в своих решениях роботизации и автоматизации. Но что же будет, если мы обучим модель не через стандартные методы машинного обучения, а через GPT? Каков будет результат? Стоит ли это исследовать и браться за реализацию? Обо всем подробно в этой статье.

Читать далее

Как мы пересоздавали читалку Яндекс Книг

Время на прочтение8 мин
Количество просмотров6.3K

Привет, Хабр! Меня зовут Дима, я фронтенд‑разработчик Яндекса. В этой статье я расскажу о том, как мы переписали наш ридер для электронных книг, создав универсальное решение для веба и нативных приложений.

Статья будет интересна фронтенд‑разработчикам. Из неё вы узнаете, как создать универсальное ядро для веба и натива, получить вместо запутанных асинхронных вызовов чёткие последовательности действий и убрать визуальные артефакты при одновременных пользовательских действиях.

Читать далее

Яркие моменты из истории проекта WebMarkupMin

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров796

За 13,5 лет я создал 12 опенсорс-проектов для платформы .NET и особое место среди них для меня занимает проект WebMarkupMin. Я не могу точно сказать, что мне больше всего нравится в нем: интересная исследовательская работа, лавры первопроходца на платформе .NET или не уходящая с годами актуальность.

В этой статье будет мало технических подробностей, потому что подобных статей о WebMarkupMin написано предостаточно. Здесь будет сделан акцент на разработке концепции опенсорс-проекта, его продвижении и взаимодействии с другими людьми.

Читать далее

Как автоматизировать создание CJM с помощью ИИ?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.8K

Меня зовут Александр Демидов, я бизнес-аналитик в X5 Tech. В этой статье я постараюсь по существу рассказать как я полюбил создавать карты клиентского пути (CJM), что помогло мне делать их в 4 раза быстрее и почему искусственный интеллект настоящая палочка-выручалочка при верном подходе.

Читать далее

Собрали метрики из приложения и отдали их пользователям — они рады

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров768

Каждое приложение пишет множество метрик: системных (потребление CPU, памяти, очереди на диск) и прикладных (количество операций, время их выполнения, коды ошибок). Это полезная информация для отслеживания состояния сервисов в моменте и динамики за период. А что если сделать из этого продукт, который полезен для пользователей?

Читать далее

Ритейл, который смог: как Walmart  и Amazon зарабатывают с помощью ИИ

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.5K

ИИ в ритейле уже меняет правила игры. Пока одни составляют стратегии, Walmart и Amazon давно монетизируют ИИ-решения.

Разбираем на примерах: где технологии реально прибавили к выручке, а где — к судам, багам и массовым сокращениям.

Читать далее

В погоне за оптимальным он-бордингом пользователей

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров404

Представьте, что ваш пользователь нажимает «Установить» — и уже через минуту кидает коллеге ссылку на готовую инструкцию. Никаких «позже разберусь», форм авторизации и лишних вкладок. Это и есть оптимальный он-бординг, за которым сегодня охотится каждый продукт.

Меня зовут Алексей, я делаю Steppo — расширение, превращающее клики в наглядные гайды. Последние полгода я усердно измеряю Time‑To‑Value (TTV): сколько секунд проходит между установкой и ценностью, когда человек говорит «Вау, оно работает!». Всё, что дольше 60 секунд, статистически превращается в болотце, где тонут конверсии.

Читать далее

Ускоряем работу видеодекодера rav1d на 1%

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.1K

Какое-то время назад memorysafety.org объявил о конкурсе по повышению производительности rav1d — порта AV1-декодера dav1d на Rust.

Моя фамилия Равид, совсем как название декодера, поэтому я решил, что будет забавно попробовать (хоть я и, вероятно, не смогу участвовать в конкурсе).

Эта статья посвящена двум найденным мной небольшим улучшениям производительности (первый PRвторой PR) и рассказу о том, как я их нашёл.

Читать далее

Ускорение сайта или гайд по оптимизации скорости загрузки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.7K

Скорость загрузки страниц — один из ключевых факторов, влияющих на успех сайта в интернете. Она влияет на пользовательский опыт, конверсию и SEO. Google учло это уже в 2010 году, сделав скорость загрузки фактором ранжирования. В 2018 году метрики были расширены, а в 2020 — дополнены новыми обновлениями.

На сегодняшний день проверка скорости загрузки сайта стала обязательной практикой для всех, кто стремится улучшить производительность своего ресурса. Существует множество инструментов для проверки скорости сайта, которые помогают определить текущие показатели и выявить факторы, влияющие на скорость сайта. Однако одного измерения недостаточно — важно понимать, как ускорить загрузку страницы и какие методы оптимизации наиболее эффективны.

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

Читать далее

Ближайшие события

Это не шутка: чем «Аврора» уже круче Android

Время на прочтение10 мин
Количество просмотров57K

Разбираемся, в каких сценариях «Аврора» уже превосходит Android: безопасность, кастомизация, импортозамещение — и где системе ещё есть куда расти.

Читать далее

Оптимизация производительности кода — это тяжёлый труд

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.8K

Я не говорю о навыках или о знаниях, равно как и не пытаюсь внушить миру идею о необходимости оптимизации производительности. Наш мир и без этого поставил во главу угла ускорение всего и вся. Оптимизация производительности кода — это тяжёлый труд из-за того, что речь идёт о задаче, природа которой диктует использование при её решении метода грубой силы — полного перебора вариантов — и ничего с этим не поделаешь.

Статья, которую вы читаете — это, отчасти, рассуждения о том, сколько огорчений мне приносит оптимизация кода. Но я, кроме того, попытаюсь дать здесь практические советы, которые, надеюсь скрасят путь тем, кто идёт дорогами оптимизации.

Читать далее

Трамплин в интернет: как мы ускорили запуск Яндекс Браузера

Время на прочтение6 мин
Количество просмотров5.9K

Привет! Это снова Максим из Яндекс Браузера. Мы с командой продолжаем делиться историями об интересных и неочевидных оптимизациях производительности, которые внедряем в наш браузер. В прошлый раз мы писали о том, как улучшили стабильность GPU‑процесса, воспользовавшись оптимизациями в драйверах видеокарт, сделанными специально для Google Chrome. А сегодня речь пойдёт об ускорении старта нашего браузера на Windows.

Читать далее

14 интересных фич Python (возможно, не совсем pythonic)

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров23K

Python — один из самых широко используемых языков программирования в мире. Однако из-за его простоты, позволяющей быстро сделать что-то, он остаётся также одним из самых недооценённых.

Если загуглить лучшие 10 продвинутых хитростей Python, то вы найдёте кучу постов или статей на LinkedIn с обзором тривиальных (но всё же полезных) вещей типа генераторов или кортежей.

Я пишу на Python уже двенадцать лет, и за это время нашёл кучу очень интересных, недооценённых, уникальных или (как может кто-то сказать) «не-pythonic» хитростей, позволяющих по-настоящему расширить границы возможного для Python.

Именно поэтому я решил собрать список из 14 лучших таких фич с примерами и дополнительными ресурсами на случай, если вы захотите изучить их глубже.
Читать дальше →

Ради “удобно” переписываем полпроекта. Как новый пользовательский опыт ломает архитектуру (и почему это нормально)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров749

Если вы делаете цифровые продукты, точно знаете: за каждым «чтобы было удобно» на фронте часто стоит несколько месяцев работы всей команды, от архитекторов до аналитиков. Крупные финтехи готовы вкладываться, потому что у них есть такой ресурс.

Совсем иначе себя чувствуют компании поменьше. Они знают, что меняться нужно, но часто попадаются на удочку «перекрашивания кнопок» в попытках стать лучше для клиента. Поэтому здесь я рассуждаю о наболевшем: почему «простой клиентский путь» почти всегда начинается с глубокой перестройки внутри. И это не бывает дешево.

Погружаемся

Хеш-таблица и C++20

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров7.7K

Рассматриваем различные «приколюхи» из C++20 на примере хеш‑мапы!

В статье я разобрал разные способы реализации тех или иных методов в хеш-мапе, так же провел небольшой анализ над ними. Статья является научно-просветительской и немного исследовательской.

Читать далее статьи от @SEIka69

Современные форматы изображений в Discord: поддержка WebP и AVIF

Время на прочтение12 мин
Количество просмотров1.6K

В течение последнего полугода команда Discord по обслуживанию медиа-инфраструктуры модернизировала конвейер обработки изображений, добавив поддержку анимированных форматов WebP и AVIF. Теперь на платформе можно делиться анимированными картинками WebP и AVIF как в виде прикреплённых файлов, так и в виде вставок. При этом все эмодзи выдаются в виде анимированных WebP — и бесшовно отображаются на любой платформе Discord. Эти изменения были реализованы для того, чтобы повысить качество анимации и воспроизведения роликов на всех платформах. При этом одновременно резко уменьшается размер файлов, и поэтому их загрузка ускоряется!

Читать далее
1
23 ...

Вклад авторов