Рубрика «оптимизация» - 10

enter image description here

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

  • С точки зрения User Experience (UX) фронтенд должен обеспечивать быструю загрузку и работу веб-страниц.
  • А с точки зрения Developer Experience (DX) нам хочется, чтобы и сам фронтенд тоже работал быстро, был прост в использовании и вообще являлся примером для подражания.

Всё это делает пользователей и разработчиков счастливее, а заодно существенно улучшает ранжирование сайтов поисковиками. Например, Google уделяет особое внимание оптимизированности фронтенда. Если вы достаточно долго бились над тем, чтобы ваш сайт заработал побольше баллов в Google Pagespeed Insights, то, надеемся, эта статья поможет вам лучше понять, для чего всё это нужно и каково разнообразие стратегий оптимизации фронтенда.

Читать полностью »

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

Как я сделал самый быстрый ресайз изображений. Часть 1, общие оптимизации - 1

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

Читать полностью »

Преждевременная оптимизация архитектуры - 1

Евгений Потапов и Антон Баранов из компании ITSumma рассказывают о преждевременно оптимизации. Это — расшифровка доклада Highload++.

Мы занимаемся круглосуточной поддержкой и администрированием веб сайтов. Работаем в Иркутске с 2008 года. Сейчас штат 50 человек. Главный офис в Иркутске, есть офис в Санкт-Петербурге и Москве. На данный момент у нас более 200 активных клиентов, с которыми происходит более 100 активных чатов в день. Мы получаем порядка 150 тысяч активных оповещений в месяц о проблемах наших клиентов. Среди наших клиентов — множество разных компаний, есть известные: Lingualeo, AlterGeo, CarPrice, «Хабрахабр», KupiVip, «Наше Радио». Есть много интернет магазинов. Род наших занятий: мы должны в течение 15 минут среагировать на то, что случилась беда, и попытаться её быстро починить.

Откуда берётся беда, эти проблемы на серверах?

Читать полностью »

На технических форумах очень часто встречаются ситуации, когда кто-то затрудняется с выбором из нескольких примерно аналогичных, схожих вариантов. Например, на форуме клуба «Фото.ру» вообще есть отдельный раздел «Помогите выбрать».
Жалобы, как правило, примерно такие: «хочу купить NN, выбрал несколько моделей, перечитал все обзоры, спецификации, перелопатил форумы – но сделать окончательный выбор не могу».
В данном материале будет изложена методика такого выбора на примере высококачественных наушников для прослушивания музыки.
Читать полностью »

Здравствуйте, меня зовут Саша, я написал самый быстрый ресайз изображений для современных х86 процессоров. Я так утверждаю, поскольку все остальные библиотеки, которые я сумел найти и протестировать, оказались медленнее. Я занялся этой задачей, когда работал над оптимизацией ресайза картинок на лету в Uploadcare. Мы решили открыть код и в результате появился проект Pillow-SIMD. Любой желающий с легкостью может использовать его в приложении на языке Python.

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

Читать полностью »

Кто ищет, тот всегда найдет. Если ему помочь - 1

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

Читать полностью »

Brainfuck — язык программирования, созданный с одной целью: написать для него интерпретатор. Их было написано так много, что даже не буду давать на них ссылки. В этой статье на пальцах объясняется простой, но эффективный способ его оптимизации.

quine

Читать полностью »

Вторая часть методического материала посвящена анализу оптимальной мощности светодиодных ламп (СДЛ) типа «кукуруза». Т.е. лампы какой мощности выгоднее всего покупать.
Читать полностью »

В последнее время все чаще можно встретить обсуждение интересной, но не очень популярной парадигмы — так называемой Data Oriented Design (DOD). Если вы устраиваетесь на работу, связанную с высокопроизводительными вычислениями, будьте готовы к соответствующим вопросам. Но я был очень очень удивлен, узнав, что некоторые мои коллеги не слышали об этом подходе и после недолго обсуждения отнеслись к нему скептически. В этой статье я постараюсь сравнить традиционный OOP подход с DOD.
Читать полностью »

В этом методическом материале хочу обсудить логику выбора светодиодных ламп (СДЛ) типа «кукуруза». Выбор типа вполне произвольный, а названия производителей я специально не расшифровываю. В данном случае задача понять, как осуществляется оптимальный выбор (а не узнать название какой-то фирмы-производителя).
Читать полностью »