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

Высокая производительность *

Методы получения высокой производительности систем

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

Как делать анимацию, которая нравится всем (даже пользователю)?

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

Привет читателям Хабра! Меня зовут Сергей Кузнецов, я руковожу отделом frontend-разработки в компании AGIMA и сегодня я вам принес статью про… да, про анимацию. Знаю, на этут тему здесь не писал только ленивый. Знаю, сказать что-то новое об анимации сложно. И все-таки надеюсь, что эта статья окажется для многих полезной, а для кого-то — даже интересной.


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

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии8

Что такое память типа LPDDR5? — Разбор

Время на прочтение4 мин
Количество просмотров62K
Наверняка, в обзорах смартфонов вы слышали словосочетание LPDDR5. Мы знаем, чем больше оперативной памяти, тем лучше. Но не всегда.

Это весной президент Xiaomi Group провел опрос в социальной сети Weibo, в котором спросил у фанатов: сколько оперативной памяти они бы хотели видеть в новом флагмане Redmi: 8 или 12 ГБ при одинаковой цене. И как вы думаете за какой вариант проголосовали фанаты? За 8 Гб. Но почему? Дело в том, что Xiaomi предлагали выбор 12ГБ стандарта LPDDR4x, и 8 ГБ стандарта LPDDR5. Но что такого нового в этом LPDDR5, чтобы идти на такие жертвы?


Сегодня мы разберемся в стандартах оперативной памяти. Выясним, чем отличается LPDDR от DDR. Узнаем как новая оперативка влияет на автономность устройств, помогает развитию 5G и спасает жизни водителей!
Всего голосов 23: ↑20 и ↓3+17
Комментарии21

Как я за вечер написал быструю CMS для статических сайтов по правилам бизнес-логики в одном файлике

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

Не Wordpress-ом единым


Не Wordpress-ом единым

Рынок CMS длительное время оставался местом, где Wordpress, Joomla, Drupal — тройка абсолютных лидеров. Эти прекрасные времена уже постепенно проходят, хотя WP, сбавляя в динамике появления новых сайтов, все ещё сохраняет лидерство. Не мудрено: активное сообщество, огромное количество плагинов. Но, эта статья вовсе не будет посвящена “восходящим звёздам” рынка систем управления контентом (привет, решениям на базе Laravel). Скорее даже, объектом нашего внимания будет “черная материя”, которая находится несколько в стороне. А именно — барабанная дробь…
Читать дальше →
Всего голосов 41: ↑22 и ↓19+3
Комментарии43

Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса

Время на прочтение9 мин
Количество просмотров23K
Что влияет на скорость работы программ на C++ и как её добиться при высоком уровне кода? Ведущий разработчик библиотеки CatBoost Евгений Петров ответил на эти вопросы на примерах и иллюстрациях из опыта работы над CatBoost для x86_64.

Видео доклада

— Всем привет. Я занимаюсь оптимизацией для CPU библиотеки машинного обучения CatBoost. Основная часть нашей библиотеки написана на C++. Сегодня расскажу, какими простыми способами мы добиваемся скорости.


Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии16

NEAR запустился! И теперь строить открытый и свободный интернет намного проще

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

Вчера произошел запуск NEAR, проекта, над которым я и мои коллеги работали последние 2 года.

NEAR – это протокол блокчейна и платформа для децентрализованных приложений, с акцентом на производительность и простоту использования.

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

Зачем нужны протоколы блокчейна

Протоколы блокчейна предоставляют очень важную инфраструктуру, которая позволяет запускать приложения, которые не контролируются никакой централизованной организацией.

В краткосрочной перспективе это уже используется для построения финансовых сервисов, которые не контролируются банками и государствами. На Ethereum – самой популярной на сегодня платформе для децентрализованных приложений – за последние два года появилось огромное количество интересных финансовых сервисов: MakerDAO построили децентрализованную валюту, чья цена почти точно равна одному доллару, позволяя использовать финансовые сервисы на платформе с использованием неволатильных активов. Compound построили возможность класть деньги в их сервис, и получать почти гарантированный доход, Augur и Flux построили сервисы, на которых можно делать ставки на различные события в реальном мире. Помимо этого на Ethereum запущено большое количество различных децентрализованных бирж. Все эти сервисы либо автономны и не контролируются никем, либо контролируются коллективно участниками сервиса.

Финансовые продукты, которые не контролируются государством и банками – это очень важное направление. Но протоколы блокчейна позволяют делать намного больше.

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии6

Независимый HttpBench для D, или врут ли тесты TechEmpower?

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

Простой фреймворк для тестирования HTTP-серверов, вдохновленный Simple Web Benchmark (Прим.пер.Там есть график для многих других языков), но сфокусированный на dlang фреймворках и библиотеках.


Он измеряет достижимый RPS (запросы в секунду) в сценарии простого текстового ответа (plaintext).


Тесты были собраны или изменены из различных мест (в том числе TechEmpower).


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


В качестве генератора нагрузки используется по умолчанию wrk и запрашивает статистику у коллектора, но hey тоже поддерживается (просто используйте ключ --tool).


Тесты можно запускать и без докера, достаточно лишь установить компиляторы для протестированных языков и генератор загрузки wrk/hey (но протестировано только на linux).

Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии3

Бесплатный IT-фестивальчик TechTrain: вторая волна

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


В этом году, когда из-за пандемии все мероприятия перешли в онлайн, мы уже проводили «фестивальчик на удалёночке» TechTrain. Теперь число заражений снова бьёт рекорды, вопрос «как интересно провести выходной дома» снова актуален, и мы устраиваем TechTrain 2020 Autumn: он состоится 24 октября.


Что можно будет увидеть? И доклады, и различные разговорные формы: круглые столы, интервью, набросы в прямом эфире. И, как водится на TechTrain, топовых спикеров, которые в своей сфере пользуются большим уважением. Например, на вопросы о производительности будут отвечать трое экспертов сразу: двое из Java-мира (Алексей Шипилёв и Андрей Паньгин), третий из .NET (Андрей Акиньшин).


Какие-то темы рассчитаны на определённых разработчиков («Ускоряем Flutter-разработку»), какие-то — на всех («Будущее IDE»). Расписали все темы под катом.

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии6

Оператор в Kubernetes для управления кластерами БД. Владислав Клименко (Altinity, 2019)

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


Доклад посвящен практическим вопросам разработки оператора в Kubernetes, проектированию его архитектуры и основных принципов функционирования.


В первой части доклада рассмотрим:


  • что такое оператор в Kubernetes и зачем он нужен;
  • как именно оператор упрощает управление сложными системами;
  • что оператор может, а что оператор не может.

Далее, перейдём к обсуждению внутреннего устройства оператора. Рассмотрим архитектуру и функционирование оператора по шагам. Подробно разберём:


  • взаимодействие между оператором и Kubernetes;
  • какие функции оператор берет на себя, а что делегирует в Kubernetes.

Рассмотрим управление шардами и репликами БД в Kubernetes.
Далее, обсудим вопросы хранения данных:


  • как работать с Persistent Storage с точки зрения оператора;
  • подводные камни использования Local Storage.

В заключительной части доклада рассмотрим практические примеры применения clickhouse-operator с Amazon или Google Cloud Service. Доклад строится на примере разработки и опыта эксплуатации оператора для ClickHouse.

Всего голосов 16: ↑15 и ↓1+14
Комментарии0

Лучший гаджет для продуктивности

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

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

Читать далее
Всего голосов 21: ↑15 и ↓6+9
Комментарии17

Как увеличить скорость чтения из HBase до 3 раз и с HDFS до 5 раз

Время на прочтение19 мин
Количество просмотров4K
Высокая производительность — одно из ключевых требований при работе с большими данными. Мы в управлении загрузки данных в Сбере занимаемся прокачкой практически всех транзакций в наше Облако Данных на базе Hadoop и поэтому имеем дело с действительно большими потоками информации. Естественно, что мы все время ищем способы повысить производительность, и теперь хотим рассказать, как удалось пропатчить RegionServer HBase и HDFS-клиент, благодаря чему удалось значительно увеличить скорость операции чтения.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии9

Выбор архитектурного стиля. Часть 4

Время на прочтение3 мин
Количество просмотров4.5K
В конце октября запускаем новую группу курса «Архитектура и шаблоны проектирования» и приглашаем всех специалистов на бесплатный Demo-урок «Шаблон адаптер», который проведёт Матвей Калинин — главный разработчик в одном из крупнейших банков страны.




Введение


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

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

Напомню: микросервисная архитектура — это подход к разработке отдельного приложения в виде набора небольших сервисов, каждый из которых работает в своем собственном процессе и взаимодействует посредством облегченных механизмов, часто API-интерфейсом HTTP-ресурсов. Эти сервисы построены на бизнес-возможностях и могут быть развернуты независимо с помощью полностью автоматизированного механизма развертывания. Существует минимальный уровень централизованного управления этими сервисами, которые могут быть написаны на разных языках программирования и использовать разные технологии хранения данных.
Читать дальше →
Всего голосов 15: ↑8 и ↓7+1
Комментарии0

Жидкий металл для охлаждения ноутбуков — польза или вред?

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

Рад приветствовать, хабравчане! Меня зовут Влад Захаров, я руковожу отделом маркетинга ASUS в России, странах СНГ и Балтии. У нас есть что рассказать о продуктах, технологиях и внутренней кухне разработки, поэтому я тут. Будет круто, если у нас завяжется живой открытый диалог. Под катом – рассказ о том, что нового появилось в системах охлаждения игровых ноутбуков ASUS Republic of Gamers.

Читать далее
Всего голосов 72: ↑68 и ↓4+64
Комментарии212

PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Время на прочтение5 мин
Количество просмотров16K
«Просто так» результат SQL-запроса возвращает записи в том порядке, который наиболее удобен серверу СУБД. Но человек гораздо лучше воспринимает хоть как-то упорядоченные данные — это помогает быстро сравнивать соответствие различных датасетов.

Поэтому со временем у разработчика может выработаться рефлекс «Дай-ка я на всякий случай это вот отсортирую!» Конечно, иногда подобная сортировка бывает оправдана прикладными задачами, но обычно такой случай выглядит как в старом анекдоте:
Программист ставит себе на тумбочку перед сном два стакана. Один с водой — на случай, если захочет ночью пить. А второй пустой — на случай, если не захочет.
Давайте разбираться — когда сортировка в запросе точно не нужна и несет с собой потерю производительности, когда от нее можно относительно дешево избавиться, а когда сделать из нескольких — одну.

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии14

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

Устранение узких мест в PostgreSQL при высоких нагрузках

Время на прочтение9 мин
Количество просмотров15K
Всем привет. Прямо сейчас в OTUS открыт набор на новый поток курса «PostgreSQL». В связи с этим, мы традиционно подготовили для вас перевод полезного материала по теме.





Взяв за основу статью Петра Зайцева об узких местах в производительности MySQL (MySQL Performance Bottlenecks), я хочу немного рассказать о PostgreSQL.

В наши дни для работы с PostgreSQL часто используются ORM-фреймворки. Обычно они работают хорошо, но со временем нагрузка увеличивается и возникает необходимость тюнить сервер базы данных. Каким бы надежным ни был PostgreSQL, но и он может тормозить при увеличении трафика.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии3

Vespa лучше Elasticsearch для поиска пар среди миллионов мужчин и женщин

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


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

Однако ваши предпочтения — не единственный фактор, влияющий на то, кого мы вам рекомендуем в качестве потенциального партнёра (или рекомендуем вас самого в качестве потенциального партнёра для других). Если бы мы просто показали всех пользователей, которые соответствуют вашим критериям, без какого-либо ранжирования, то список был бы совсем неоптимальным. Например, если не учитывать недавнюю активность пользователя, то вы можете потратить намного больше времени на общение с человеком, который не заходит на сайт. Кроме указанных вами предпочтений, мы используем многочисленные алгоритмы и факторы, чтобы рекомендовать вам тех людей, которых, по нашему мнению, вы должны увидеть.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Маленькие оптимизации в Java 9-16

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

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


Эту ситуацию исправляет Тагир Валеев (lany), рассказывая о таких оптимизациях. Сначала он выступил на Joker 2019 с докладом «Java 9-14: маленькие оптимизации», можете посмотреть его видеозапись. Затем, поскольку зрителям очень понравилось, на JPoint 2020 он развил тему. А теперь мы решили сделать из второго доклада пост для Хабра, чтобы его можно было не только увидеть, но и прочитать.



Далее под катом текст пойдет от лица спикера.

Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии7

Готовим видеосервис к нагрузке в сотни Гбит/с. Доклад Яндекса

Время на прочтение14 мин
Количество просмотров5.9K
Классический CDN — anycast, GeoDNS, веб-сервер с кешем — отлично работает с простыми файлами и небольшим количеством пользователей. Но если возникает необходимость раздавать потоковое видео, всё становится намного интереснее. Вместо одного короткого запроса появляется сессия, которая длится десятки минут. Без правильной балансировки пользователей и контента уже не прожить: кеша на всё не хватает, а когда Россия играет против Испании, это хотят смотреть сразу все. Руководитель разработки платформы видеостриминга Андрей Василенков рассказал, благодаря чему наш CDN позволяет обслуживать сотни тысяч пользовательских сессий одновременно и переживать отключения серверов и дата-центров. А в качестве бонуса показал на примере, как современная поп-культура мешает обучению.


— Всем привет! Расскажу, какие вопросы приходится решать, когда вам нужно подготовить ваш сервис к нагрузкам в несколько сотен гигабит, а то и терабит в секунду. Впервые мы с такой проблемой столкнулись в 2018 году, когда готовились к трансляциям чемпионата мира по футболу.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии4

Выбор архитектурного стиля. Часть 3

Время на прочтение4 мин
Количество просмотров5.7K
Привет, Хабр. Сегодня я продолжаю серию публикаций, которую написал специально к старту нового потока курса «Software Architect».





Введение


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

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

Сейчас мы наконец определим основные характеристики микросервисной архитектуры.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии4

PostgreSQL 13: happy pagination WITH TIES

Время на прочтение2 мин
Количество просмотров11K
На прошедшей неделе вышло сразу две статьи (от Hubert 'depesz' Lubaczewski и автора самого патча Alvaro Herrera), посвященные реализованной в грядущей версии PostgreSQL 13 поддержке опции WITH TIES из стандарта SQL:2008:
OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }
Что это, и как оно избавляет от проблем с реализацией пейджинга, о которых я рассказывал в статье «PostgreSQL Antipatterns: навигация по реестру»?


Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии0

Фоновые задачи на Faust, Часть II: Агенты и Команды

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

Часть II. Узнаем, как писать агентов, обрабатывающих стрим событий из kafka, а так же как написать команды (обёртка на click).

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

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