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

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

Материал подготовлен на основе доклада Николая Рыжикова на весенней конференции HolyJS 2018 Piter.

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

Привет дорогой хабрачитатель!

Нашему подводному GPS на днях исполнилось три года. За это время система стала серийной, мы вывели на рынок еще несколько систем и устройств, но все это время меня не покидала навязчивая идея принести гидроакустику в широкие массы, сделать ее доступной простым любителям, моделистам, представителям такого направления, как городские сумасшедшие citizen science и прочим интересующимся.
И сегодня, в честь нашего скромного юбилея, я подробно и на пальцах объясню, как определять географическое положение подводного объекта при помощи всего двух приемопередатчиков: с исходным кодом, веселыми картинками, графиками и результатами экспериментов.
Всех заинтересованных прошу к нам на байдарку, в чистые и теплые воды Волгоградского Водохранилища!
Подводный «GPS» на двух приемопередатчиках - 1
Читать полностью »

До сих пор проблема накопления (аккумулирования) электроэнергии существовала без каких-либо глобальных изменений, технологического прорыва в данной области никто предложить не мог. Это был тот самый аккумулятор Гастона Планте 1859 года, доработанный различными вспомогательными технологиями и оснащенный усовершенствованиями в области электрохимических процессов, борьбы с выделением водорода, другими материалами корпуса и пр. На рубеже начала 2000 годов появились различного вида литиевые аккумуляторы, которые уверенно вытесняют во всех областях стандартные щелочные, кальциевые, AGM и гелевые аккумуляторы. В данный момент литий-ионные и литий-полимерные аккумуляторы уже завоевали рынок бытовых устройств, технология отработана и позволяет делать АКБ любой формы, ёмкости и размеров. Пришло время отработанных промышленных решений на базе литиевых аккумуляторов. Предлагаю разобраться, почему в серверных и ЦОДах за этой технологией будущее…

ИБП и батарейный массив: куда ставить? Да подожди ты - 1
Читать полностью »

Семинар «Чёрная пятница в e‑commerce. Секреты выживания», 16 августа, Москва - 1

Привет! Мы начинаем новый сезон Университетов DataLine.

Открывать сезон будет необычный семинар. Большую часть времени мы будем отвечать на вопросы и дискутировать с вами.

Мы поговорим о подготовке сайта к росту трафика и обсудим как технические, так и организационные тонкости этого процесса.
Читать полностью »

Процесс работы пользователей с интерактивными веб-сайтами может включать в себя шаг отправки им JavaScript-кода. Часто — слишком большого объёма такого кода. Если на сайте используется очень много JavaScript, это особенно сильно сказывается на мобильных пользователях. Например, вам случалось бывать на мобильных веб-страницах, которые, вроде бы, выглядят как уже готовые к работе, но не реагируют на щелчки по ссылкам или на попытки прокрутить страницу?
Цена JavaScript в 2018 году - 1

JavaScript-код, который попадает в мобильные браузеры, всё ещё остаётся самым дорогостоящим ресурсом, так как он, многими способами, может задержать переход страниц в состояние, в котором с ними можно взаимодействовать. Какую нагрузку на системы создаёт JavaScript в наши дни? Как анализировать сайты? Как ускорить загрузку и обработку браузерами интерактивных веб-страниц? Эдди Османи, перевод материала которого мы сегодня публикуем, решил найти ответы на эти и на многие другие вопросы, встающие перед теми, кто пользуется JavaScript для разработки веб-сайтов в 2018 году.
Читать полностью »

Сам себе VDS-провайдер - 1

Если хотите пользоваться преимуществами VDS и при этом защититься от бессовестного оверсела, когда провайдер забивает ноду под завязку и не балансирует нагрузку — есть два пути.

Можно найти своего надёжного VDS-хостера. Или убить всех ситхов самому и сделать собственную звезду смерти (ноду) — заказать выделенный сервер и перенести туда все свои VDS. Ведь тогда мы точно будем знать, что все ресурсы только наши и всегда будут доступны. Да ещё и ставить сможем любую ОС, какую захотим, любой софт, который приспичит, а Битрикс будет радовать попугаями благодаря высокой частоте процессора. Кто знает, может даже начальство расщедрится и выпишет премию. Поехали!Читать полностью »

Урок по оптимизации серверной части веб-приложений - 1

Привет! Меня зовут Алексей Приставко, я директор по веб-проектам в компании DataLine. Моя сегодняшняя статья посвящена тому, как исправить или предотвратить проблемы с производительностью бэк-энда веб-приложений.

Речь пойдет о том, как оптимизировать веб-приложения, которые страдают от хронических проблем с масштабируемостью, производительностью или надежностью.
Всем заинтересовавшимся – добро пожаловать под кат!
 Читать полностью »

Не так давно у меня произошёл очередной разговор с коллегой на извечную тему: "по ссылке, или по значению". В результате возникла данная статья. В ней я хочу изложить результаты моего исследования по этой и смежным темам. Далее будут рассмотрены:

  • Регистры и их назначение при вызове функций.
  • Передача и возврат простых типов и структур.
  • Как передача по ссылке и по значению влияют на оптимизации тела функции компилятором.
  • Как используется место при многочисленных вызовах функций.
  • Механизм виртуальных вызовов.
  • Оптимизация хвостовых вызовов и рекурсии.
  • Инициализация структур, массивов и векторов.

Осторожно! Статья содержит большое количество кода на C++ и ассемблере (с комментариями), а также множество таблиц с оценками производительности.

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

Постоянная работа с приоритетами является необходимостью в управлении продуктами, неотъемлемой частью процесса разработки. Если хватает времени, можно изучить и попробовать использовать сложные и интересные методы для определения приоритетов. Техника Lean Prioritization — один из простых и доступных подходов, который помогает менеджерам продуктов управлять бэклогом задач, особенно, когда нужно это сделать быстро и эффективно.

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

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

Я работаю в компании Parity Technologies, которая поддерживает клиент Parity Ethereum. В этом клиенте нам нужна быстрая 256-битная арифметика, которую приходится эмулировать на программном уровне, потому что никакое оборудование не поддерживает её аппаратно.

Долгое время мы параллельно делаем две реализации арифметики: одну на Rust для стабильных сборок и одну со встроенным ассемблерным кодом (который автоматически используется nightly-версией компилятора). Мы так поступаем, потому что храним 256-битные числа как массивы 64-битных чисел, а в Rust нет никакого способа умножить два 64-битных числа, чтобы получить результат более 64 бит (так как целочисленные типы Rust только доходят до u64). Это несмотря на то, что x86_64 (наша основная целевая платформа) нативно поддерживает 128-битные результаты вычислений с 64-битными числами. Так что мы разделяем каждое 64-битное число на два 32-битных (потому что можно умножить два 32-битных числа и получить 64-битный результат).
Читать полностью »