24 «привычки» оптимизации изображений

Я работаю с графикой для web с тех бородатых времен, когда случайное нажатие кнопки wap на телефоне могло привести к инфаркту и моментальному списанию всех средств на счете. В погоне за мобильной доступностью цифровых продуктов в те времена приходилось исхитриться каждый раз и делать это по новому. Сегодня, специалисты в вэб — как спецы в геймдеве «оптимизация? не не слышал» для игр у тебя должна быть 5090, в для сайтов 5g и гигабит, 2026 ведь на носу. Я решил поделится теми «привычками» оптимизации контента/графики, которые уже 20 лет в моем арсенале и остаются актуальными и по сей день.

https://habr.com/ru/articles/969236/

#webразработка #графика #графика_для_сайта #адаптивная_вёрстка #адаптивный_вебдизайн #адаптивный_сайт #оптимизация_изображений #оптимизация #оптимизации #svg

24 «привычки» оптимизации изображений

Я работаю с графикой для web с тех бородатых времен, когда случайное нажатие кнопки wap на телефоне могло привести к инфаркту и моментальному списанию всех средств на счете. В погоне за мобильной...

Хабр

Оптимизируя фаянс

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

https://habr.com/ru/articles/959674/

#застройщики #застройка #застройщик #застрощики #схемы #оптимизация #оптимизация_сайта #оптимизация_изображений #оптимизации

Оптимизируя фаянс

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

Хабр

[Перевод] Как замедлить программу и почему это может быть полезно?

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

https://habr.com/ru/articles/942564/

#профилировщик #оптимизация_кода #состояние_гонки #оптимизации #профилирование_производительности

Как замедлить программу и почему это может быть полезно?

Основная часть исследований производительности языков программирования задаётся разными вариациями единственного вопроса: как нам ускорить некую конкретную программу? Реже мы исследуем, как она может...

Хабр

[Перевод] Удивительная оптимизация размера enum в компиляторе Rust

Enum — одна из самых популярных фич Rust. Тип enum может иметь одно из значений в заданном множестве вариантов. /// Foo имеет значение или 32-битного integer, или символа. enum Foo { Int(u32), Char(char), } Значениями типа Foo могут быть или integer (например, вариант Foo::Int(3) с полезной нагрузкой 3 ), или символы (например, вариант Foo::Char('A') с полезной нагрузкой 'A' ). struct можно считать AND -комбинациями их полей, а enum — OR-комбинациями их вариантов. Этот пост посвящён удивительной оптимизации, выполняемой компилятором Rust с представлением в памяти значений enum , чтобы они занимали меньше места в памяти (спойлер: это не нишевая оптимизация). В общем случае, уменьшение размера значений может привести к ускорению программ, потому что значения передаются в регистрах CPU и в одну линию кэша CPU умещается больше значений.

https://habr.com/ru/articles/899834/

#компиляторные_оптимизации #перечисления #enum #оптимизация_кода #оптимизации

Удивительная оптимизация размера enum в компиляторе Rust

Enum — одна из самых популярных фич Rust. Тип enum может иметь одно из значений в заданном множестве вариантов. /// Foo имеет значение или 32-битного integer, или символа. enum Foo { Int(u32),...

Хабр

Как повысить свою частоту вибрации?

Что значит повысить свою частоту вибрации?! Быть может люди, которые говорят, что тебе нужно повысить свою частоту вибрации, имеют в виду чакры?! Тогда повысить свою частоту вибрации означает переместить свою энергию в верхние чакры... Это просто, но в чем преимущество повышенной частоты вибрации?! В чем отличается животное от человека?!

https://habr.com/ru/articles/860544/

#спок #повышенная_частота_вибрации #фантазии #как_процветать #квантовые_вычисления #энергия_чакр #повышение_частоты_вибрации #просветление #оптимизации #биохакинг

Как повысить свою частоту вибрации?

Командор Спок и вибрирует на повышенной частоте вибрации! Что значит повысить свою частоту вибрации?! Быть может люди, которые говорят, что тебе нужно повысить свою частоту вибрации, имеют в виду...

Хабр

История оптимизации Python сервиса: пара простых системных улучшений

Привет, Хабр! В двух предыдущих статьях здесь и тут мы рассказывали историю создания одного из компонентов платформы экспериментов в компании Okko — сервис сплитования трафика. В тех статьях говорилось о множестве изменений и улучшений, которые претерпел Python-код, чтобы работать достаточно быстро. Но как бы качественно не был написан код, все усилия могут сойти на нет, если он будет запущен в неправильной среде. В этой статье продолжим рассказ об оптимизациях и улучшениях, но в этот раз речь будет идти не столько об особенностях предметной области и решаемой бизнес-задачи, сколько о том, как мы архитектурно организовали работу сервиса для получения минимального времени ответа.

https://habr.com/ru/companies/okko/articles/833424/

#Python #вебразработа #оптимизации #gil

История оптимизации Python сервиса: пара простых системных улучшений

Привет, Хабр! В двух предыдущих статьях здесь и тут мы рассказывали историю создания одного из компонентов платформы экспериментов в компании Okko — сервиса сплитования трафика. В тех статьях...

Хабр

[Перевод] Укрощаем суммы с плавающей запятой

Допустим, у нас есть массив чисел с плавающей запятой, и мы хотим их суммировать. Можно наивно подумать, что их достаточно просто сложить, например, на Rust. Однако это запросто может привести к произвольно большой накопленной погрешности. Давайте проверим: naive_sum(&vec![1.0; 1_000_000]) = 1000000.0 naive_sum(&vec![1.0; 10_000_000]) = 10000000.0 naive_sum(&vec![1.0; 100_000_000]) = 16777216.0 naive_sum(&vec![1.0; 1_000_000_000]) = 16777216.0 Ой-ёй… Что произошло? Проблема в том .что следующее 32-битное число с плавающей запятой после 16777216 — это 16777218 . Так что при вычислении 16777216 + 1 , значение округляется до ближайшего числа с плавающей запятой, имеющей чётную мантиссу, то есть снова до 16777216 . Мы зашли в тупик. К счастью, есть более совершенные способы суммирования массива.

https://habr.com/ru/articles/819135/

#числа_с_плавающей_запятой #сложение #оптимизации #округление #погрешности_округления

Укрощаем суммы с плавающей запятой

Допустим, у нас есть массив чисел с плавающей запятой, и мы хотим их суммировать. Можно наивно подумать, что их достаточно просто сложить, например, на Rust: fn naive_sum(arr: &[f32]) -> f32 {...

Хабр

Быстрый старт, или Как ускорить запуск iOS-приложений

Всем привет! Меня зовут Фируза, я iOS-разработчик в компании SimbirSoft. В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно: — что происходит от момента нажатия на иконку приложения до представления возможности пользователю взаимодействовать с UI; — как собрать актуальные метрики скорости запуска и отзывчивости приложения; — какие тактики применить, чтобы ускорить старт и отзывчивость запуска. Статья будет полезна для iOS-разработчиков любого уровня, желающих улучшить производительность своих приложений. Ускориться 🚀

https://habr.com/ru/companies/simbirsoft/articles/801251/

#ios_development #swift #xcode #аналитика_мобильных_приложений #мобильная_разработка #производительность #оптимизации

Быстрый старт, или Как ускорить запуск iOS-приложений

Всем привет! Меня зовут Фируза, я iOS-разработчик в компании SimbirSoft. В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно: что происходит от момента нажатия на иконку...

Хабр

Поговорим об оптимизирующих компиляторах. Сказ восьмой: размотка циклов

Есть оптимизации, польза от которых очевидна всегда или почти всегда. Например, не делать лишнюю проверку лучше, чем делать. Не считать два раза одно и то же обычно лучше, чем считать (если только мы не упёрлись в нехватку регистров или имеем другие подобные проблемы на нижнем уровне). Вычислять выражения вне цикла выгоднее, чем в цикле. И так далее. Но есть оптимизации, применение которых имеет как плюсы, так и минусы. Выиграв в одном месте, мы можем получить отрицательные эффекты в другом. Например, сэкономив на количестве проверок, мы можем раздуть общий объём кода и поломать микрооптимизации. Каноничным примером такой оптимизации, решение вопроса об использовании которой больше похоже на искусство, чем на науку, является размотка циклов (Loop Unrolling), о которой мы сегодня поговорим. В статье я попробую осветить как можно больше (хотя, наверное, и не все) соображения о том, почему эту оптимизацию может быть нужно или не нужно применять. Смысл размотки цикла заключается в том, чтобы за счёт дублирования тела цикла уменьшить количества его итераций. В зависимости от того, как много мы знаем об исполнении цикла, размотка может быть полной, частичной или динамической.

https://habr.com/ru/articles/784816/

#оптимизации #циклы #unroll

Поговорим об оптимизирующих компиляторах. Сказ восьмой: размотка циклов

Это цикл статей об оптимизирующих компиляторах вообще и LLVM в частности. Смотри все статьи данного цикла: SSA форма Доминирование Неопределённое поведение Циклы CSE Цикловые инварианты Проверки...

Хабр

[Перевод] Четыре способа оптимизации ПО

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

https://habr.com/ru/companies/ruvds/articles/775868/

#ruvds_перевод #оптимизации #алгоритмы #python #rust #программирование

Четыре способа оптимизации ПО

Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные...

Хабр