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

Многие помнят публикацию о «Рэйдикс» на Хабре «Как разработчики сидели в Петербурге и тихо ели грибы», в которой партнеры кратко изложили историю появления нашего продукта. Поэтому в первой статье своего Хаброблога мы бы хотели погрузиться в математические основы технологий RAIDIX.

Начнем с математики. Векторизация вычислений в реализации технологии RAID-6 - 1
Читать полностью »

Производительность мобильных приложений — краеугольный вопрос, вне зависимости от рассматриваемой платформы. О том, какую специфику эта проблема имеет под Android, в том числе в ракурсе перехода с виртуальной машины Dalvik на ART, мы поговорили с Александром Ефременковым.

Производительность приложений под Android - 1

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

Дилетантское ЧПУ? - 1

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

Однажды нам понадобилось организовать управление для самодельной штамповочной линии. Линия самодельная, а значит и управление, сделаем самодельное. Мы не использовали промышленные стандарты для передачи данных. Было решено, всё сделать из подручных материалов и ненужного старого компьютера. Главные условия: просто, дёшево, быстро. Надёжность – как получиться. Расскажу, как мы это сделали.
Читать полностью »

Сравнение производительности версий PHP - 1

В этой статье мы рассмотрим результаты нескольких бенчмарков, начиная с PHP 5 и вплоть до экспериментальной JIT-ветки (сейчас в разработке). На момент написания не было известно, появится ли до PHP 8 ещё какая-то основная версия, например PHP 7.2. Но логично предположить, что возможности экспериментальной ветки как минимум будут включены в PHP 8.

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

Жирные программы — факторы скорости - 1 Картинка из фильма «Размер имеет значение», 2009

Данная статья была начата в апреле 2016г в результате того, что компьютер опять стал работать медленнее, чем я щелкаю мышкой. Собственно, она является компиляцией многих тестов (некоторых еще с 2010г) и обсуждений с моим участием. Ее нельзя назвать полностью законченной, поскольку это не окончательные выводы, а некие промежуточные точки, показывающие на что обратить внимание и куда копать дальше.

Название частично позаимствовано из статьи Никлауса Вирта «Долой „жирные“ программы», которой в 2016г было ровно 10 лет, и актуальности она не утратила — а скорее вышла на новый уровень, кто не знаком — почитайте.

Рассмотрим разные аспекты, влияющие на производительность систем и программ.

Языковой аспект
Аспекты памяти
Аспекты реального мира
Неязыковые факторы
Аспект человеческого фактора
Читать полностью »

Недавно мы писали приложение на Shiny, где нужно было использовать очень большой блок данных (dataframe). Это непосредственно влияло на время запуска приложения, поэтому пришлось рассмотреть ряд способов чтения данных из файлов в R (в нашем случае это были csv-файлы, предоставленные заказчиком) и определить лучший.

Цель этой заметки — сравнить:

  1. read.csv из utils — стандартный способ чтения csv-файлов в R
  2. read_csv из readr, который в RStudio заменил предыдущий метод
  3. load и readRDS из base, и
  4. read_feather из feather и fread из data.table.

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

Centrifugo – 3.5 миллиона оборотов в минуту - 1

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

Клиентам, внедряющим твердотельные накопители текущего поколения, такие как Intel DC NVMe серии P3700, приходится справляться со сложной проблемой: поскольку пропускная способность гораздо выше, чем у дисковых накопителей, а задержки гораздо ниже, большая часть общего времени транзакций теперь приходится на работу программного обеспечения хранилища. Другими словами, производительность и эффективность всей системы хранения данных все сильнее зависят от производительности и эффективности используемого программного набора. При этом носители данных постоянно совершенствуются, в ближайшие годы их мощность превзойдет возможности программных архитектур, используемых в системах хранения данных.

Введение в Storage Performance Development Kit (SPDK) - 1

Для помощи ОЕМ-производителям и поставщикам программного обеспечения в интеграции такого оборудования корпорация Intel создала набор драйверов и разработала полную архитектуру хранилища под названием Storage Performance Development Kit (SPDK). Цель SPDK — подчеркнуть высокую эффективность и производительность, достигаемые совокупностью технологий Intel в области сетей, вычислений и хранения данных. С помощью SPDK удалось продемонстрировать, что можно достичь великолепных показателей в миллионы операций ввода-вывода в секунду, используя несколько процессорных ядер и несколько накопителей NVMe без какого-либо дополнительного оборудования для разгрузки. Intel предоставляет полный исходный код эталонной архитектуры для Linux на условиях более широкой и либеральной лицензии BSD, он распространяется в сообществе через GitHub. По адресу spdk.io находятся блог, список рассылки и дополнительная документация.
Читать полностью »

Называть статью «Эволюция прикладных информационных систем и перспективы развития их архитектуры» было бы слишком академично, а ведь тут будет очень краткая выжимка из реального практического опыта, возможные варианты развития технологий, вызвавшие их потребности и пути решения. Я надеюсь, что статья поможет обобщить и переосмыслить широкий круг задач, связанных с прикладными ИС, и сразу хочу уточнить, что понимаю под этими терминами. ИС — это системы, обеспечивающие обработку, передачу и хранение данных. Это далеко не все программирование, но сейчас ИС чаще всего ассоциируются с веб и мобильными приложениями, хотя и не совпадают с ними полностью, знак равенства между UI и ИС нельзя ставить тем более. Очень прошу всех посмотреть на вопрос как можно шире и присоединяться к обсуждению в комментариях. И еще, я намеренно не буду использовать названия фреймворков и технологий, чтобы избежать лишних холиваров, ограничившись общепринятыми названиями архитектур, стандартов и протоколов, что и вам рекомендую в комментариях.
imageЧитать полностью »

image

Этот пост — текстовая версия доклада, представленного на Tarantool Meetup второго марта 2017-го года в Mail.Ru Group с поправкой на то, что прошёл уже месяц, и кое-что из обещанного уже было реализовано, поэтому текст будет интересен даже тем, кто видел выступление.

Большое спасибо коллегам, друзьям и сотрудникам компании Mail.Ru Group, которые помогали написать эту статью.

Выбор СУБД

В жизни каждого проекта рано или поздно возникает переломный момент, когда нужно выбрать СУБД для хранения всех данных. Наш проект с этой точки зрения простой: пользователи, голосования, ответы, какая-то попутно собираемая информация — всё это прекрасно можно держать в key-value хранилище. Поэтому на старте мы рассматривали три варианта: Redis, Tarantool и MySQL с handlersocket. Фаворитом с самого начала был Redis. Он быстро работает, у него замечательный коннектор для .NET, созданный командой Stack Overflow. К слову, сам Stack Overflow написан на .NET, работает на Windows, у них SQL Server от Microsoft, Redis и ещё много интересного. У Redis прекрасная документация. Если мы нанимаем нового программиста, который никогда не работал с Redis, то мы отправляем его туда — и через три дня он знает примерно всё, что ему нужно знать для использования Redis.

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


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