Рубрика «высокая производительность» - 48

Latency Numbers Every Programmer Should Know — таблица «задержек, которые должен знать каждый программист». Там собраны средние значения времени для выполнения базовых операций компьютера в 2012-м году. Для этой таблицы есть несколько альтернативных представлений и вот одно из них.

«Latency numbers» на iPhone - 1
Ссылка на источник схемы

Но какая польза мобильным разработчикам от этой информации в 2019? Кажется, что никакой, но Дмитрий Куркин (SClown) из команды Яндекс.Навигатора задумался: «А как бы таблица выглядела для современного iPhone?». Что из этого получилось, в переработанной текстовой версии доклада Дмитрия на AppsConf.

Для чего это нужно?

Почему же программисты должны знать эти числа? И актуальны ли они для мобильных разработчиков? Можно выделить две основные задачи, которые можно решать при помощи этих чисел.
Читать полностью »

Когда участники HighLoad++ пришли на доклад Александра Крашенинникова, они надеялись услышать про обработку 1 600 000 событий в секунду. Ожидания не оправдались… Потому что во время подготовки к выступлению эта цифра улетела до 1 800 000 — так, на HighLoad++ реальность превосходит ожидания.

3 года назад Александр рассказывал, как в Badoo построили масштабируемую систему near-realtime обработки событий. С тех пор она эволюционировала, в процессе росли объёмы, приходилось решать задачи масштабирования и отказоустойчивости, а в определённый момент потребовались радикальные меры — смена технологического стека.

Разгоняем обработку событий до 1,6 миллионов в секунду - 1

Из расшифровки вы узнаете, как в Badoo заменили связку Spark + Hadoop на ClickHouse, в 3 раза сэкономили железо и увеличили нагрузку в 6 раз, зачем и какими средствами собирать статистику в проекте, и что с этими данными потом делать.

О спикере: Александр Крашенинников (alexkrash) — Head of Data Engineering в Badoo. Занимается BI-инфраструктурой, масштабированием под нагрузки, руководит командами, которые строят инфраструктуру обработки данных. Обожает всё распределённое: Hadoop, Spark, ClickHouse. Уверен, что классные распределенные системы можно готовить из OpenSource.Читать полностью »

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

Но такое решение будет обладать рядом недостатков:

Во-первых, большое количество необходимых вычислений, что влияет на время работы или требуемую энергию (что очень актуально для мобильных устройств). Действительно, если мы хотим распознавать хотя бы 3000 символов, то это будет размер последнего слоя сети. А если вход этого слоя равен хотя бы 512-ти, то получаем 512 * 3000 умножений. Многовато.

Во-вторых, размер. Тот же самый последний слой из предыдущего примера будет весить 512 * 3001 * 4 байт, то есть около 6-ти мегабайт. Это только один слой, вся сеть будет весить десятки мегабайт. Понятно, для настольного компьютера это проблема небольшая, но на смартфоне не все будут готовы хранить столько данных для распознавания одного языка.

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

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

И сегодня я расскажу, как нам удалось решить эти проблемы.
Читать полностью »

В этой статье вас ждёт десять лучших докладов от Андрея Александреску, Дэвида Вандервурда, Джона Калба и многих других.

Фичи компилятора C++, асинхронность, многопоточность, параллелизм, модель памяти, алгоритмы и STL, метапрограммирование и рефлекшен, огромное множество тем.

Топ-10 докладов конференции C++ Russia 2018: полные видеозаписи, слайды, комментарии - 1

Всё это — записи с конференции C++ Russia, самой большой в истории. Восемь сотен участников, немаленький зал, спикеры с мировым именем. Прошёл год, но большинство докладов ничуть не утратило своей актуальности. Впрочем, и неудивительно — именно такие доклады и попадают в топ по оценке участников.

Формат таков:

  • Обязательное видео на YouTube
  • Слайды, если есть
  • Подробное описание доклада на русском языке
  • Краткая биография докладчика

Плюс у вас есть комментарии Хабра, чтобы обсудить увиденное. Реклама на ютубе отключена, никто не будет мешать. Есть всё, чтобы начать смотреть прямо сейчас.

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

Идея waferscale-процессоров наделала много шума в 80-х годах прошлого века, но оказалась забытой на десятилетия из-за сложности производства. Сегодня технологию вновь пытаются развивать. Рассказываем, кто работает в этой области.

Технология из 80-х: кто возрождает waferscale-процессоры - 1Читать полностью »

Чем высоконагруженная информационная система похожа на огромный гипермаркет? Что делать, если 150 млн человек одновременно придут в гипермаркет за покупками? За что можно наказать руководителя гипермаркета, а за что нет? Почему время загрузки документа ночью намного меньше, чем днем? Почему время загрузки одного документа на самом деле ни о чем не говорит?

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

Массовая загрузка данных, или Как накормить китайскую деревню - 1

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

В этой статье мы поговорим о новом интерпретируемом языке Loli, рассмотрим синтаксис и сравним с языками C и Python.

Loli — новый высокопроизводительный язык - 1Читать полностью »

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

FoundationDB — это распределенная NoSQL база данных с ACID-транзакциями уровня Serializable, хранящая отсортированные пары ключ-значение (ordered key-value store). Ключами и значениями могут быть произвольные последовательности байт. У неё нет единой точки падения — все машины кластера равноправны. Она сама распределяет данные по серверам кластера и  масштабируется на лету: когда в кластер нужно добавить ресурсов, ты просто добавляешь адрес новой машины на конфигурационных серверах и база сама подхватывает ее. Читать полностью »

Последний месяц зимы подходит к концу, и просыпается здоровое желание сходить на какую-нибудь большую Java-конференцию. Благо, всего месяц остался до JPoint 2019 — международной Java-конференции, которая пройдёт в начале апреля в Москве. Программа почти стабилизировалась, и настало время раскрыть все карты.

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

  • VM & Runtime — 8 хардкорных докладов от лидеров индустрии: Oracle, BellSoft, IBM, Azul, Excelsior, Одноклассники и GridGain;
  • Enterprise — 5 докладов от российских и международных энтерпрайзов: Spring, JavaEE, Liferay, Vaadin, Kafka, Netflix OSS vs Kubernetes, архитектура больших систем;
  • Reactive — 10 докладов про страшный и волшебный реактивный мир: Spring Web Reactive Framework, Spring Project Reactor, RSocket, Reactive Streams, реактивная архитектура;
  • Languages — 7 докладов по языкам: Java 9-12 (deputy CTO Azul), Kotlin и Kotlin/Native (JetBrains), Scala, функциональное программирование;
  • Tooling — 5 докладов про тулинг: создатель Jenkins (CEO CloudBees), разработчики Gradle и IntelliJ IDEA;
  • Несколько докладов вне категорий.

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

Путеводитель по программе JPoint 2019 - 1

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

Как научить машину понимать инвойсы и извлекать из них данные - 1Привет! Меня зовут Станислав Семенов, я работаю над технологиями извлечения данных из документов в R&D ABBYY. В этой статье я расскажу об основных подходах к обработке полуструктурированных документов (инвойсы, кассовые чеки и т.д.), которые мы использовали совсем недавно и которые используем прямо сейчас. А еще мы поговорим о том, насколько для решения этой задачи применимы методы машинного обучения.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js