Многие помнят публикацию о «Рэйдикс» на Хабре «Как разработчики сидели в Петербурге и тихо ели грибы», в которой партнеры кратко изложили историю появления нашего продукта. Поэтому в первой статье своего Хаброблога мы бы хотели погрузиться в математические основы технологий RAIDIX.
Рубрика «высокая производительность» - 96
Начнем с математики. Векторизация вычислений в реализации технологии RAID-6
2017-04-19 в 9:15, admin, рубрики: raid, raid6, Алгоритмы, Блог компании RAIDIX, высокая производительность, конечные поля, контрольная сумма, математика, поля галуа, системное программирование, системы хранения данных, СХД, хранение данныхПроизводительность приложений под Android
2017-04-19 в 8:42, admin, рубрики: android development, Блог компании JUG.ru Group, высокая производительность, разработка мобильных приложений, Разработка под androidПроизводительность мобильных приложений — краеугольный вопрос, вне зависимости от рассматриваемой платформы. О том, какую специфику эта проблема имеет под Android, в том числе в ракурсе перехода с виртуальной машины Dalvik на ART, мы поговорили с Александром Ефременковым.
Дилетантское ЧПУ?
2017-04-19 в 6:35, admin, рубрики: высокая производительность, Программирование, программирование микроконтроллеров, проектирование взаимодействия, проектирование систем, производство, Промышленное программирование, управлениеВсё, чему я учусь самостоятельно, стараюсь не только воплощать в жизнь, но и заставлять это работать дольше одного дня, приносить долгосрочную пользу.
Однажды нам понадобилось организовать управление для самодельной штамповочной линии. Линия самодельная, а значит и управление, сделаем самодельное. Мы не использовали промышленные стандарты для передачи данных. Было решено, всё сделать из подручных материалов и ненужного старого компьютера. Главные условия: просто, дёшево, быстро. Надёжность – как получиться. Расскажу, как мы это сделали.
Читать полностью »
Сравнение производительности версий PHP
2017-04-18 в 11:26, admin, рубрики: php, Анализ и проектирование систем, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, Проектирование и рефакторинг, производительностьВ этой статье мы рассмотрим результаты нескольких бенчмарков, начиная с PHP 5 и вплоть до экспериментальной JIT-ветки (сейчас в разработке). На момент написания не было известно, появится ли до PHP 8 ещё какая-то основная версия, например PHP 7.2. Но логично предположить, что возможности экспериментальной ветки как минимум будут включены в PHP 8.
Жирные программы — факторы скорости
2017-04-17 в 13:31, admin, рубрики: C, python, высокая производительность, производительность, Совершенный код, тестированиеКартинка из фильма «Размер имеет значение», 2009
Данная статья была начата в апреле 2016г в результате того, что компьютер опять стал работать медленнее, чем я щелкаю мышкой. Собственно, она является компиляцией многих тестов (некоторых еще с 2010г) и обсуждений с моим участием. Ее нельзя назвать полностью законченной, поскольку это не окончательные выводы, а некие промежуточные точки, показывающие на что обратить внимание и куда копать дальше.
Название частично позаимствовано из статьи Никлауса Вирта «Долой „жирные“ программы», которой в 2016г было ровно 10 лет, и актуальности она не утратила — а скорее вышла на новый уровень, кто не знаком — почитайте.
Рассмотрим разные аспекты, влияющие на производительность систем и программ.
Языковой аспект
Аспекты памяти
Аспекты реального мира
Неязыковые факторы
Аспект человеческого фактора
Читать полностью »
Быстрая загрузка данных из файлов в R
2017-04-16 в 13:05, admin, рубрики: big data, data mining, R, высокая производительность, производительностьНедавно мы писали приложение на Shiny, где нужно было использовать очень большой блок данных (dataframe). Это непосредственно влияло на время запуска приложения, поэтому пришлось рассмотреть ряд способов чтения данных из файлов в R (в нашем случае это были csv-файлы, предоставленные заказчиком) и определить лучший.
Цель этой заметки — сравнить:
read.csv
изutils
— стандартный способ чтения csv-файлов в Rread_csv
изreadr
, который в RStudio заменил предыдущий методload
иreadRDS
изbase
, иread_feather
изfeather
иfread
изdata.table
.
Centrifugo – 3.5 миллиона оборотов в минуту
2017-04-12 в 7:36, admin, рубрики: centrifugo, Go, open source, redis, sockjs, WebSocket, высокая производительность, Программирование, Разработка веб-сайтов
Последний раз я писал про Centrifugo чуть больше года назад. Пришло время напомнить о существовании проекта и рассказать, что произошло за этот период времени. Чтобы статья не скатилась в скучное перечисление изменений, я попробую сконцентрировать внимание на некоторых Go библиотеках, которые помогли мне в разработке – возможно, вы почерпнете для себя что-то полезное.
Читать полностью »
Введение в Storage Performance Development Kit (SPDK)
2017-04-12 в 7:03, admin, рубрики: NVMe, SDS, software defined storage, Storage Performance Development Kit, Блог компании Intel, высокая производительностьКлиентам, внедряющим твердотельные накопители текущего поколения, такие как Intel DC NVMe серии P3700, приходится справляться со сложной проблемой: поскольку пропускная способность гораздо выше, чем у дисковых накопителей, а задержки гораздо ниже, большая часть общего времени транзакций теперь приходится на работу программного обеспечения хранилища. Другими словами, производительность и эффективность всей системы хранения данных все сильнее зависят от производительности и эффективности используемого программного набора. При этом носители данных постоянно совершенствуются, в ближайшие годы их мощность превзойдет возможности программных архитектур, используемых в системах хранения данных.
Для помощи ОЕМ-производителям и поставщикам программного обеспечения в интеграции такого оборудования корпорация Intel создала набор драйверов и разработала полную архитектуру хранилища под названием Storage Performance Development Kit (SPDK). Цель SPDK — подчеркнуть высокую эффективность и производительность, достигаемые совокупностью технологий Intel в области сетей, вычислений и хранения данных. С помощью SPDK удалось продемонстрировать, что можно достичь великолепных показателей в миллионы операций ввода-вывода в секунду, используя несколько процессорных ядер и несколько накопителей NVMe без какого-либо дополнительного оборудования для разгрузки. Intel предоставляет полный исходный код эталонной архитектуры для Linux на условиях более широкой и либеральной лицензии BSD, он распространяется в сообществе через GitHub. По адресу spdk.io находятся блог, список рассылки и дополнительная документация.
Читать полностью »
Эволюция приложений или куда мы идем
2017-04-12 в 0:16, admin, рубрики: api, RPC, Анализ и проектирование систем, архитектура, браузер, браузеры, ветхий веб, высокая производительность, интернет, исследование, клиент, обзор, прогноз, Программирование, протокол, Разработка веб-сайтов, реактивность, сервер, СУБДНазывать статью «Эволюция прикладных информационных систем и перспективы развития их архитектуры» было бы слишком академично, а ведь тут будет очень краткая выжимка из реального практического опыта, возможные варианты развития технологий, вызвавшие их потребности и пути решения. Я надеюсь, что статья поможет обобщить и переосмыслить широкий круг задач, связанных с прикладными ИС, и сразу хочу уточнить, что понимаю под этими терминами. ИС — это системы, обеспечивающие обработку, передачу и хранение данных. Это далеко не все программирование, но сейчас ИС чаще всего ассоциируются с веб и мобильными приложениями, хотя и не совпадают с ними полностью, знак равенства между UI и ИС нельзя ставить тем более. Очень прошу всех посмотреть на вопрос как можно шире и присоединяться к обсуждению в комментариях. И еще, я намеренно не буду использовать названия фреймворков и технологий, чтобы избежать лишних холиваров, ограничившись общепринятыми названиями архитектур, стандартов и протоколов, что и вам рекомендую в комментариях.
Читать полностью »
Tarantool как основное хранилище данных для серверных приложений, написанных на .NET
2017-04-11 в 12:57, admin, рубрики: .net, .net core, mail.ru, open source, tarantool, Анализ и проектирование систем, Блог компании Mail.Ru Group, высокая производительность
Этот пост — текстовая версия доклада, представленного на 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.