Меня зовут Леонид Талалаев, я занимаюсь разработкой внутреннего облака Одноклассников one-cloud, про которое уже рассказывали на Хабре.
Рубрика «высокая производительность» - 11
Как мы оптимизировали сетевой шейпер Linux в облаке с помощью eBPF
2021-08-11 в 9:54, admin, рубрики: eBPF, linux, linux kernel, locking, qdisc, traffic control, traffic shaping, Блог компании Одноклассники, высокая производительность, высокие нагрузки, облачные сервисы, Разработка под Linux, системное администрирование, системное администрирование linuxПриёмы ускорения кода на JS и других языках: подборка от разработчика поиска Яндекса
2021-08-03 в 8:01, admin, рубрики: backend, javascript, web-разработка, Блог компании Яндекс, быстрый код, высокая производительность, практические советы, Программирование, Разработка веб-сайтовНекоторые из приёмов будут полезны и тем, кто пишет на других языках. Все способы разделены на группы по убыванию специфичности: от наиболее общих до конкретных. Почти все примеры кода взяты из реальных проектов, из реального продакшена.
- Организационные
Культура разработки performance-first
Бюджет скорости
Performance mantras - Те, что можно использовать независимо от языка и его реализации
Смена языка или фреймворка
Смена алгоритма
Оптимизация алгоритма
Вынос инвариантов на уровень выше
Boolean short circuit
Досрочный выход из цикла
Предвычисление - Для языков/фреймворков, в которых нет ленивых вычислений и приёма copy-on-write
Shortcut fusion
Ленивое вычисление
Copy-on-write
Оверинжиниринг - Зависящие от железа
Разворачивание мелких циклов
Предсказание ветвлений (Branch prediction)
Доступ к памяти: направление итерации
Доступ к памяти: [i][j] vs [j][i] - Для языков со сборкой мусора
Мутабельность
Zero memory allocation или GC-free - Специфичные для JavaScript
Антипаттерн: накопление строк в массиве
Антипаттерн: Lodash _.defaults
Idle Until Urgent
Даунгрейд кода: ES6 → ES5 - Примеры из код-ревью
Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем
2021-06-24 в 9:27, admin, рубрики: Анализ и проектирование систем, архитектура систем, Блог компании Яндекс, высокая производительность, дизайн систем, Промышленное программирование, распределенные системы, собеседованияПривет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.
Технический уровень кандидата у нас оценивается за счет всего двух типов интервью: секции с кодом и секции дизайна компьютерных систем. Первый тип мы назначаем всем претендентам вне зависимости от их уровня, а вот у кандидатов, которые претендуют на должность старшего специалиста, нужно проверять не только способность писать эффективный и работоспособный код, но и способность разрабатывать сложные системы в целом.
Что такое дизайн информационных систем
Основная цель любой IT-компании — производить сервисы, которые решают задачи пользователей. Мы должны уметь собирать элементы системы в единый механизм, который будет эффективно выполнять поставленную цель, и если первый тип собеседований нацелен в первую очередь на проверку необходимого минимума, то интервью про дизайн систем проверяет достаточность навыков кандидата в достижении конечной цели. Далекому от IT пользователю принципы и устройство систем могут казаться бесконечно сложными, но мы, их разработчики, должны иметь (не обязательно детальное) представление о принципах функционирования и роли каждого компонента.
Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?Читать полностью »
На пути к вершине: Магма и Кузнечик на Эльбрусе
2021-06-17 в 12:08, admin, рубрики: E2K, блочный шифр, высокая производительность, гост, криптография, криптопро, Кузнечик, магма, МЦСТ, оптимизация, Процессоры, симметричное шифрование, ЭльбрусВ последнее время всё чаще появляются статьи о производительности российских процессоров Эльбрус на различных задачах. Тема криптографии пока что остаётся за кадром, хотя в разное время были упоминания то о высоких возможностях Эльбруса (некий ГОСТ лучше в 9 раз на Эльбрус-4С, чем на Intel Core i7-2600), то о плохой оптимизации компилятора и, соответственно, крайне низкой скорости реализованных алгоритмов (Кузнечик в 100 раз медленнее, чем на Intel?). Предлагаю наконец разобраться, что может Эльбрус, на примере двух ГОСТ алгоритмов симметричного шифрования.
SQLAlchemy: а ведь раньше я презирал ORM
2021-06-05 в 18:14, admin, рубрики: database design, orm, Pyhon, python, sql, sqlalchemy, высокая производительность, ооп, Проектирование и рефакторингТак вышло, что на заре моей карьеры в IT меня покусал Oracle -- тогда я ещё не знал ни одной ORM, но уже шпарил SQL и знал, насколько огромны возможности БД.
Какой предел у предсказателя ветвлений? Проверили на x86 и M1
2021-05-19 в 9:01, admin, рубрики: branch prediction, cpu, Блог компании Selectel, высокая производительность, Компьютерное железо, ПроцессорыНекоторое время назад я смотрел на высоконагруженную часть кода и обратил внимание на это:
if (debug) {
log("...");
}
И тут я задумался. Это — часть цикла, от которого требуется высокая производительность, но этот фрагмент выглядит как пустая трата времени, ведь мы никогда не устанавливаем флаг отладки. Нормально ли иметь в коде условные операторы, которые никогда не выполняются? Уверен, это влияет на производительность программы…
Читать полностью »
Как я разогнал Intel Rocket Lake Core i9-11900K до 7,14 ГГц на всех ядрах
2021-05-16 в 15:25, admin, рубрики: highload, intel, Блог компании Selectel, высокая производительность, Компьютерное железо, Лайфхаки для гиков, Процессоры, разгонПроцессоры семейства Rocket Lake уже доступны, а значит, пришло время для Xtreme OverClocker (XOCer). Я получил ранний доступ к процессорам и занимаюсь их разгоном уже несколько месяцев.
В этом месяце я узнал немало важных моментов о разгоне Rocket Lake, также мне удалось разогнать Intel Rocket Lake Core i9-11900K до 7,14 ГГц на всех ядрах. Еще я установил мировой рекорд на G.Skill Tweakers Contest Extreme. В статье я поделюсь несколькими советами.
Читать полностью »
PHP-SPX простой профайлер трейсер для PHP
2021-05-16 в 10:51, admin, рубрики: blackfire, Magento, performance, php, php-spx, profiling, tideways, xhprof, высокая производительность, Разработка веб-сайтовРаботая с различными PHP проектами часто приходится дебажить приложение чтобы найти и исправить ошибку. Во многих случаях вполне хватает xDebug, однако он не подходит для всех задач. Иногда нужно понять почему та или иная страница долго загружается, что съедает так много памяти или просто как работает большой и запутанный код.
Читать полностью »
Встречаем WSE-2: 7-нм процессор с 850 тысячами ядер и энергопотреблением в 15 кВт
2021-04-21 в 14:31, admin, рубрики: WSE, Блог компании Selectel, высокая производительность, гаджеты, Компьютерное железо, Процессоры, чипыКомпания Cerebras два года назад представила свой первый процессор, размер которого был равен размеру кремниевой пластины. Площадь его составила 46 225 мм², размеры — 220х220 мм, количество транзисторов — 1,2 трлн. Первый чип получил название WSE (Wafer Scale Engine) и производился по нормам 16-нм техпроцесса.
Что касается нового чипа, то он выполнен уже по нормам 7-нм техпроцесса. Площадь осталась той же, а вот транзисторов в два раза больше — теперь 2,6 трлн. Количество ядер тоже увеличилось более чем в два раза: 850 тысяч вместо 400 тысяч, как у предыдущей модели. Процессор предназначен для дата-центров, задач по обработке вычислений в области машинного обучения и искусственного интеллекта (AI).
Читать полностью »
ARM серверы подходят для облачного хостинга лучше чем x86? Проверим
2021-04-12 в 7:50, admin, рубрики: Cortex, SoC, x86, АРМ, Блог компании VDSina.ru, высокая производительность, Компьютерное железо, сервер, Серверная оптимизация, серверы, хостинг
Если вам нужна была высокая производительность, то вам нужно было выбирать процессор на x86 для своих решений. В последнее время, все больше и больше говорят о закате архитектуры x86 и переходе на ARM. В прошлом году компания Apple впервые представила Mac на процессорах ARM. Но подойдет ли процессор ARM для дата-центров, сможет ли ARM навсегда отправить x86 на скамью запасных?
Читать полностью »