Как стать автором
Обновить
110.94

Высокая производительность *

Методы получения высокой производительности систем

Сначала показывать
Порог рейтинга
Уровень сложности

Метод подбора параметров функции за ограниченное время. Торговый симулятор + улучшение стратегии

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2K

Уважаемые участники сообщества Хабр, добрый день!

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

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

Итак, начнем.

Читать далее
Всего голосов 7: ↑2 и ↓5-3
Комментарии15

Мониторинг на Python: как сохранить метрики в мультипроцессном режиме

Время на прочтение8 мин
Количество просмотров5.6K

Привет, Хабр! Меня зовут Никита, я backend-разработчик команды клиентских сервисов. В Selectel мы строим и поддерживаем IT-инфраструктуру для компаний, которые развивают свои цифровые продукты. В нашем департаменте около 20 приложений, большая часть из которых работает на Flask и Gunicorn. Чтобы отслеживать их производительность, мы мониторим параметры системы с помощью Prometheus.

С развитием бизнеса нагрузка на приложения возрастает, один из способов масштабировать его под большее количество запросов — запустить Gunicorn-сервер с несколькими worker-процессами в мультипроцессном режиме. Однако при таком подходе клиент Prometheus не выводит нужные нам метрики CPU и RAM. В статье расскажу, как мы решили эту проблему, сохранив метрики и организовав мониторинг в мультипроцессном режиме.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии7

FizzBuzz for Senior

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров9.6K

Алоха всем.

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

А как быть интервьюерам? Какую задачу дать кандидату? Как понять сигналы, что кандидат «шарит»?

Я наткнулся на интересную статью по интервью на Senior инженера C++. Там у парня спрашивают базовую задачу FizzBuzz.

В этой статье мы рассмотрим бенчмарки различных решений на Java, начиная от простых вариантов и заканчивая многопоточными реализациями. Давайте разбираться вместе!

Читать далее как "Senior" решает FizzBuzz
Всего голосов 14: ↑8 и ↓6+2
Комментарии20

Революция или косметические изменения? Новые поколения серверных процессоров Intel

Время на прочтение6 мин
Количество просмотров7K

Источник: Intel

14 декабря компания Intel анонсировала два семейства процессоров для серверов: Intel Xeon Scalable 5-го поколения Emerald Rapids и Intel Xeon E-2400. Рассмотрим их подробнее, сравним с предшественниками и продуктами AMD.

Насколько процессоры отличаются от своих «предков» и найдется ли им место в серверном сегменте? За ответами приглашаю под кат.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии6

Истории

Готовы ли госкорпорации тратить из бюджетов не менее 70% на ПО-вендоров

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.1K

Соответствующие методические рекомендации подготовил Центр компетенций по импортозамещению в сфере информационно-коммуникационных технологий (есть в распоряжении RSpectr). О том, почему передача значительной доли ИТ-заказов независимым разработчикам будет полезна как вендорам, так и госкомпаниям, рассказали регуляторы, участники рынка и профильные эксперты.

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии2

Object-Relational Mapping (ORM) в Golang

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.2K

Одна из самых важных задач ЯП`s это эффективное взаимодействие с базами данных и Go не исключение. В Go есть парадигма Object-Relational Mapping (ORM), позволяет работать с реляционными базами данных в терминах объектно-ориентированного программирования. Это очень сильно упрощает работу с базами данных, позволяя сосредоточиться на бизнес-логике приложения, а не на нюансах SQL-запросов.

GORM (Go Object-Relational Mapping) предоставляет удобный интерфейс для взаимодействия с различными базами данных, сохраняя при этом идиоматичность и фичу конкуретности в Go.

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии14

Cisco TRex на практике

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров4.5K

В данной статье описаны процесс работы с программным генератором сетевого трафика TRex и методика тестирования переключений.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Утверждён стандарт памяти для ноутбуков CAMM2. У SO-DIMM появился конкурент

Время на прочтение3 мин
Количество просмотров5K

Несколько дней назад стало известно об утверждении и публикации нового стандарта оперативной памяти CAMM2 сообществом JEDEC. Достоинство новых модулей заключается в их компактности и скорости работы, в ближайшем будущем, вероятно, CAMM2 появится в ноутбуках и других устройствах. Но и с SO-DIMM прощаться рано, скорее всего, оба стандарта будут сосуществовать в течение нескольких лет. Подробности о новинке и её перспективах — под катом.

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии16

Сборка мусора в JavaScript

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров18K

Каждый из нас, хотя бы раз, слышал о сборке мусора. Мы знаем, что где-то там работает сборщик мусора, убирая за нами ненужные объекты и массивы. Но сколько из нас знают, как он устроен под капотом?

В этой статье мы заглянем под капот этого процесса, поймем, как работает память, и изучим алгоритм сборки мусора.

Погнали собирать мусор!

Собрать мусор
Всего голосов 17: ↑16 и ↓1+15
Комментарии5

Бенчмарк HTML парсеров в Python: сравнение скорости

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.5K

Привет, Хабр!

Меня зовут Вадим Москаленко и я разработчик инновационных технологий Страхового Дома ВСК. В этой статье хочу поделиться с вами информацией по проведенному сравнению производительности нескольких популярных библиотек для простого HTML-парсинга.

При необходимости сбора данных с HTML или XML, многим python-разработчикам сразу вспомнятся две популярные библиотеки «BeautifulSoup4» и «lxml» — они весьма удобны и стали широко применяемыми. Но что, если в нашем проекте важна скорость сбора данных? Возникает вопрос: кто из них быстрее и есть ли еще более быстрые библиотеки? При поиске данной информации на Хабре, я нашел подобные статьи, но им уже несколько лет. Так как прогресс не стоит на месте и появляются новые инструменты или те, о которых еще не слышали, мне было интересно провести личное исследование и поделиться информацией.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Записки оптимизатора 1С (часть 5). Ускорение RLS-запросов в 1С системах

Уровень сложностиСредний
Время на прочтение80 мин
Количество просмотров4.9K

Замахнемся сегодня на RLS.

Обсуждать будем проблемы по нашему профилю, связанные с производительностью 1С:Предприятие. Но, в целом, этот материал может быть полезен и не только 1С-никам.

Почему запросы с RLS часто такие долгие?

Какие есть варианты их ускорить?

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии33

Как оптимизировать код на С для x86-процессоров: подсистема кэша и памяти, инструкции AVX-512

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.9K

Меня зовут Андрей Бакшаев, я ведущий инженер-программист в YADRO. Моя команда занимается разработкой и оптимизацией математических библиотек под архитектуру x86. До этого я 15 лет работал в Intel. Значительная часть моих задач заключалась в том, чтобы реализовывать некоторые алгоритмы обработки изображений и сигналов в довольно известной математической библиотеке IPP, максимально эффективно используя возможности процессоров. Я также исследовал производительность этих алгоритмов в процессорах на ранней стадии проектирования. 

В статье я поделюсь своим опытом оптимизации низкоуровневого кода на языке C. Рассмотрим подсистему кэша и памяти процессоров и новые инструкции AVX-512. Разберем пример ускорения копирования байтового массива данных и посмотрим, как векторизованный код позволяет сократить время работы широко используемого алгоритма замены байтов по таблице с 619 до 34 мс, то есть примерно в 18 раз. 

Читать далее
Всего голосов 54: ↑51 и ↓3+48
Комментарии23

Открытые инструменты нагрузочного тестирования

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.8K

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

Как помочь ИТ-системам справиться с ростом трафика? Конечно, обеспечить эластичные вычисления и надежные каналы связи — сделать это можно с помощью облака. А еще на помощь приходит нагрузочное тестирование перед пиковыми событиями: вы должны знать, может ли приложение справиться с масштабированием или нет.

Для проведения нагрузочного тестирования следует определиться с методологией: наметить цели, продумать метрики и сценарии, подходы к интерпретации результатов. Разобраться с существенной частью этих задач должны специализированные открытые инструменты, и сегодня мы поговорим о некоторых заметных из них. В подборке: Locust, который позволяет писать тесты на Python, легковесный Drill, производительный Wrk, а еще — k6 и Tsung.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Ближайшие события

Spring Cloud Gateway. Единая точка входа или отказа: путь к non-blocking API gateway

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров11K

Привет, Хабр! Меня зовут Никита Летов, я техлид бэкенд-разработки сервисов дистанционного банковского обслуживания Росбанка для физических лиц, или как модно сейчас говорить, ретейла. В этом посте я расскажу, что такое входная точка в приложение, когда в ней появляется необходимость и какие вообще задачи решает паттерн API Gateway. Мы рассмотрим классический блокирующий подход на примере гейтвея Netflix Zuul 1.x, проблемы, связанные с его эксплуатацией, а также реактивный Spring Cloud Gateway и сложности перехода на него. В заключение сравним два подхода.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии9

Своё кастомное межсервисное взаимодействие с блекджеком и gRPC

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров13K

Привет, Хабр! Меня зовут Ильяс. Мы с командой делаем собственный Service Mesh в Ozon Tech, и в этой статье я расскажу, как можно за вечер реализовать свое супер кастомное межсервисное взаимодействие. К концу статьи мы с вами напишем современные алгоритмы балансировки, настроим канареечные деплои, а также узнаем, как реализовать кучу других супернеобычных механизмов межсервисного взаимодействия на основе, не поверите, библиотеки gRPC :D И да, мы с моей командой уже раскатили это на весь Ozon Tech, состоящий из более чем 4500 сервисов. Пристегнитесь — мы начинаем… :-)

Читать далее
Всего голосов 36: ↑35 и ↓1+34
Комментарии13

Паттерн Circuit Breaker

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров10K

Привет, Хабр!

Каждая секунда простоя может стоить компании целое состояние, важно иметь надежные механизмы защиты от сбоев. Здесь и приходит на помощь паттерн Circuit Breaker.

Представьте себе обычный автоматический выключатель в вашем доме. Когда происходит перегрузка, он "выбивается", предотвращая возможные повреждения. Точно так же работает и Circuit Breaker в микросервисах. Он мониторит вызовы к внешнему сервису и при обнаружении слишком большого количества неудачных попыток временно "отключает" вызов, предотвращая тем самым падение всей системы.

Этот паттерн основывается на трех основных состояниях: закрытое, открытое и полуоткрытое.

Читать далее
Всего голосов 20: ↑17 и ↓3+14
Комментарии0

О JavaScript и WebAssembly

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.9K


Hello world!


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


Хорошо, если вы знаете JS/Node.js и хотя бы слышали о WASM и Rust.

Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии4

Самое главное в конференции это…

Время на прочтение6 мин
Количество просмотров1.5K

Всем привет! Я главный редактор блога Онтико на Хабре. Меня зовут Роман Бурак. Немного пришёл в себя после участия в подготовке и проведении HighLoad++ 2023 и хочу поделиться впечатлениями. Именно ощущениями, никакой рекламы мероприятия, докладов и всего прочего. Расскажу, в какой момент я понял, для чего на самом деле ездил на конференцию. Ведь посмотреть и послушать доклады можно дома, у экрана ноутбука или телевизора, так зачем же тогда тратить время, нервы и деньги. Об этом, собственно, и речь.

Я работаю на удалёнке, поэтому редко куда-то езжу в будни. Но из-за рекордного количества участников конференции (3750 только посетителей), меня попросили помочь и подстраховать со стендом Онтико. Поэтому пришлось встать в 5:30 утра в понедельник и, попив кофе, уйти в метель.

Читать далее
Всего голосов 17: ↑12 и ↓5+7
Комментарии5

Производительность базового поиска в Ozon как культурный феномен

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров22K

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

Читать далее
Всего голосов 81: ↑76 и ↓5+71
Комментарии87

Профилирование асинхронного Python

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.8K

Профилирование приложений — это процесс анализа программы для определения её характеристик: времени выполнения различных частей кода и использования ресурсов.

Для асинхронного python-кода существует конечное количество специфических "узких мест", которые лучше перечислить заранее.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

Вклад авторов