Как стать автором
Обновить
40.1
Рейтинг

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

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

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

Сказка про Guid.NewGuid()

Блог компании Контур Высокая производительность *Программирование *.NET *Алгоритмы *

C#. Guid.NewGuid(). Linux. Windows. Randomness or Uniqueness. RNG and PRNG. Performance. Benchmarking.

Цель нашей сегодняшней сказки — развлечься как следует. Детективная история в поисках потерянного перфоманса с красивым финалом и эффектным результатом непосредственно связана с набором слов из предыдущего абзаца.

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Просмотры 2.4K
Комментарии 9

Новости

Строковые алгоритмы на практике. Часть 2 — Алгоритм Бойера — Мура

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

В прошлый раз мы с вами разобрали Алгоритм Кнута — Морриса — Пратта, сегодня мы разберем не менее интересный, а на мой личный взгляд, даже наиболее любопытный и изящный алгоритм поиска подстрок в тексте, который подкупает своей гениальной простотой.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 4.7K
Комментарии 1

Производительность фронтенда: большое приложение на реактивном SSR-топливе

Блог компании SuperJob Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Разработка веб-сайтов *JavaScript *

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

Значительно повысить производительность можно при помощи серверного рендеринга, но какая будет цена у такой оптимизации? Какой инструмент выбрать — готовую библиотеку или собственное решение? Какие ограничения в дальнейшем могут быть вызваны выбором того или иного подхода?

На все эти вопросы ответил frontend-разработчик Виталий Старов на конференции FrontendConf 2021. Он рассказал о серверном рендеринге на примере приложения SuperJob. Читайте под катом, как SuperJob пришли к своей реализации серверного рендеринга, узнав по пути много интересного. Узнаете, когда хорош SSR и как он работает, из чего он устроен, чем может быть полезен и кому.  

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

Как мы ускорили выполнение запросов PostgreSQL в 100 раз

Блог компании CloudMTS Высокая производительность *Open source *PostgreSQL *Администрирование баз данных *
Перевод

Существует великое множество статей об оптимизации PostgreSQL — эта «кроличья нора» весьма глубока. Когда несколько лет назад я начал разрабатывать бэкэнд аналитического сервиса, у меня уже был опыт работы с другими СУБД, такими как MySQL и SQL Server. Тем не менее, раньше мне не приходилось так фокусироваться на производительности. В прошлых проектах, над которыми я работал, либо не было жестких требований к времени обработки (DS/ML), либо не требовалось обрабатывать много строк одновременно (обыкновенные веб-приложения). Однако в этот раз мои запросы:

состояли из 3-10 JOIN-ов по коррелирующим запросам;

уielded от 10 до 1,000,000 строк;

должны были выполняться в течение времени, определенного UX-ом;

не могли быть hinted — пока Cloud SQL, управляемый PostgreSQL в Google Cloud, не стал поддерживать pg_hint_plan в конце 2021 года;

запрещали прямой доступ к серверному процессу, чтобы, например, хакнуть некоторые perf — потому что PostgreSQL был managed.

Получение целого миллиона строк в одном API endpoint сигнализирует о проблеме в алгоритме или архитектуре. Конечно, все можно переписать и перепроектировать, но за это нужно платить.

У нас не нашлось «заклинания», которое решило бы все проблемы с производительностью SQL. Тем не менее, я упомяну здесь несколько дельных предложений, которые помогли нам и, надеюсь, смогут помочь читателю. Разумеется, это не какие-то сакральные знания. Но когда мы начинали оптимизацию, я был бы рад их прочитать или услышать.

Читать далее
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 12K
Комментарии 2

Сортировка подсчётом beSort или как я изобретал велосипед?

Высокая производительность *Программирование *.NET *Алгоритмы *C# *
Recovery mode

Как я изобрёл весьма быстрый велосипед и узнал, что на нём уже кто-то ездит.

Подробнее...
Всего голосов 14: ↑8 и ↓6 +2
Просмотры 4.8K
Комментарии 23

Популярные расширения для VS Code 2022

Высокая производительность *Разработка веб-сайтов *Интерфейсы *
Из песочницы
Перевод

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

На текущий момент VS Code остается средой разработки, которая доступна в период санкций, когда JetBrains отказался продавать лицензии, про Visual Studio даже не узнавал. Сам использую VS Code много лет в разных стеках. VS Code предоставляет возможности разработки практически во всех направлениях: веб-разработка, мобильные приложения, часто встречаются приложения для встраиваемых систем. Ниже перечислены наиболее популярные расширения, которые облегчают разработку приложений.

Atom One Dark Theme

При всем изобилии тем в VS Code тема Atome One Dark наиболее популярная, потому-что имеет наиболее удачный контраст и прекрасно выглядит.

Читать далее
Всего голосов 24: ↑14 и ↓10 +4
Просмотры 13K
Комментарии 14

Угнать за 5 миллисекунд: как мы наладили быструю доставку данных в сложной биржевой системе с помощью Tarantool

Блог компании Конференции Олега Бунина (Онтико) Блог компании VK Высокая производительность *Хранение данных *Tarantool *

Привет! На связи Олег Уткин из отдела архитектуры систем хранения данных Tarantool. Я хочу рассказать, как в ходе проекта для Московской биржи мы консолидировали потоки данных из разных торговых систем и наладили их доставку клиентам. По пути мы собрали много граблей и сделали несколько интересных выводов, которыми я далее поделюсь.

Читать далее
Всего голосов 42: ↑42 и ↓0 +42
Просмотры 3.5K
Комментарии 1

Строковые алгоритмы на практике. Часть 1 — Алгоритм Кнута — Морриса — Пратта

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

Начал я на днях читать книгу про обработку строк и буквально с первых страниц, прихлебывая чаечек я начал поражаться тому, что за пять лет работы программистом я смотрел на строки только как на последовательность букв и ничего большее. Про то, что строки можно анализировать, чтобы как-то с ними продуктивно работать я вообще не задумывался.


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

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 10K
Комментарии 8

Встречайте UUID нового поколения для ключей высоконагруженных систем

Высокая производительность *IT-стандарты *Big Data *Хранилища данных *Распределённые системы *

31 марта 2022 года на сайте IETF был официально размещен текст рабочего документа (копия 1, копия 2) New UUID Formats (далее – стандарт), который должен формально обновить, а фактически заменить давно устаревший и изначально ущербный RFC 4122.

В долгих и жарких спорах удалось выработать стандарт высокого качества. Можно надеяться, что этот стандарт заменит многочисленные «самоделки» энтузиастов и отдельных компаний: ULID, KSUID, CUID и т.д., а в СУБД будут встроены генераторы UUID новых форматов, предназначенных для ключей высоконагруженных систем.

Читать далее
Всего голосов 42: ↑42 и ↓0 +42
Просмотры 14K
Комментарии 88

Использование Gatling. Разбираемся в тестировании HTTP

Блог компании TINKOFF Высокая производительность *Тестирование IT-систем *Тестирование веб-сервисов *
Tutorial

Всем привет! Это команда тестирования производительности Тинькофф, и мы продолжаем цикл статей о Gatling. 

В предыдущей статье мы рассмотрели базовые возможности инструмента Gatling, узнали, как быстро создать шаблон gatling-проекта, и познакомились с новыми функциями библиотеки gatling-picatinny. Сегодня расскажем, как при помощи этих инструментов создать проект для тестирования HTTP-протокола.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.6K
Комментарии 3

VS Code portable,  делаем настоящую переносную сборку для Windows

Высокая производительность *Python *Программирование *Visual Studio *Изучение языков
Из песочницы

Я не так давно начал изучать Python, и решил,  что мне необходима портативная сборка.  Причин для этого несколько, но статья не об этом. Если вам такое не нужно, дальше можно не читать. Во время поисков решения этой задачи часто сталкивался с вопросами людей по этой теме, но однозначного решения так и не нашел, но ответы некоторых пользователей натолкнули на верное решение. Почему VS Code? Ну, просто у них есть версия “portable”, так она гордо называется на сайте, но скачав ее, возникает вопрос, а как к тебе приделать Python?

 Сразу оговорюсь, целью было сделать полноценно переносную версию из связки Python + среда разработки + Git (для изучения).  В статье все расписал максимально подробно, так же на github закину файлы со всеми изменениями, и вам останется только создать структуру каталогов как у меня. Если хотите все разложить по своему- читайте-исправляйте,  по аналогии думаю не сложно будет сделать под себя.

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

220 платежей в секунду: выдержать нельзя упасть

Блог компании Ozon Tech Высокая производительность *Анализ и проектирование систем *Проектирование и рефакторинг *

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

Я разрабатываю сервисы в команде платежей Ozon. Мы много времени уделяем тому, чтобы все транзакции были обработаны корректно, даже если речь идёт о нагрузке в 2к платежей в минуту (именно столько у нас было в пике в период ноябрьских распродаж). Кстати, сейчас, по результатам нагрузочного тестирования, мы выдерживаем 13к платежей в минуту.

Для этого мы готовимся заранее: пересматриваем архитектуру, дорабатываем сервисы, рефакторим код, кэшируем и оптимизируем базы данных. Серебряной пули тут нет, но могу поделиться техниками, которые помогли нам избежать возможных проблем, — будет полезно всем, кто готовит свои сервисы с прицелом на работоспособность под нагрузками.

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 5.1K
Комментарии 9

LACMT как тул для структурирования спроса на ИТ-сервис менеджеров, и причем здесь кошки, моллюски и солод

Блог компании ICL Services Высокая производительность *Управление проектами *IT-компании

В повседневной деятельности тимлида ИТ-сервис менеджеров я часто сталкиваюсь с запросами на назначение специалиста на проект. На первый взгляд – вполне себе тривиальная процедура, но с ростом числа сотрудников и ростом количества запросов появилась потребность просто и понятно для всех сторон структурировать спрос / предложение. Придумывать свой формат представлялось слишком трудоемкой задачей: использовать, например, подход Agile-племён слабо заходило в наш фреймворк, а околопсихологические/астрологические/эзотерические практики (нужное подчеркнуть) смотрелись откровенно бесполезными. На помощь пришёл ITIL, а если конкретнее, LACMT. Итак, как последователь культуры постоянных улучшений, я решил поделиться небольшими наработками по части адаптации лучших практик в управлении ITSM-командой.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 347
Комментарии 0

Профилирование Python-программ и анализ их производительности

Блог компании Wunder Fund Высокая производительность *Python *Клиентская оптимизация *
Перевод

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

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

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 6.2K
Комментарии 0

Эзотерическая оптимизация газа в Solidity

Высокая производительность *Алгоритмы *Solidity *Криптовалюты

Программирование в Солидити отличается от других языков, так как каждое инструкция и байт памяти тратят газ - деньги пользователей. В сети уже есть много ресурсов с основными техниками оптимизации кода (например, стараться использовать calldata вместо memory), но я хочу показать несколько совсем безумных и неочевидных.

Понять о чем я говорю без базового опыта в solidity будет очень сложно, но может быть эти оптимизации проявят в вас интерес в ethereum программировании.

Читать далее
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 2.1K
Комментарии 4

Использование Gatling. Введение

Блог компании TINKOFF Высокая производительность *Тестирование IT-систем *Тестирование веб-сервисов *
Из песочницы

Привет! Мы — команда тестирования производительности в Тинькофф, и мы любим инструмент Gatling. В цикле статей мы расскажем об использовании Gatling и дополнительных инструментов, упрощающих разработку скриптов.

Возможно, вы уже читали наши статьи про Gatling: первую и вторую. Они успели устареть, поэтому мы решили вернуться с обновленной информацией.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 3.4K
Комментарии 3

Как устроена MemQ — система PubSub в Pinterest

Блог компании SkillFactory Высокая производительность *Программирование *Amazon Web Services *Big Data *
Перевод

MemQ — это дополнение к Kafka, отделяющее аппаратную часть чтения и записи от слоя хранения данных. Разработчики Pinterest постепенно заменяют Kafka на MemQ: балансировка с ним не только проще благодаря унификации данных, но и дешевле в 10 раз. К старту флагманского курса по Data Science приглашаем под кат за подробностями.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 2.3K
Комментарии 2

Оверклокинг, ты живой?

Блог компании RUVDS.com Высокая производительность *Компьютерное железо

Он пробовал на прочность этот мир каждый миг,
Мир оказался прочней.

«Машина Времени»


Ежегодно на соревнованиях «Формулы 1», кроме основного кубка, вручается кубок конструкторов — награда лучшей инженерной команде сезона. С самых истоков гонки руководители команд истово борются за конструкторов — примерно с тем же усердием, что и за пилотов: в гонке решает каждый грамм веса кокпита, каждый замысел эргономики, каждый состав используемых сплавов и компонентов. Одним из первых фанатов «детальной прокачки» и одним из самых мощных конструкторов Формулы 1 был Энцо Феррари — он побеждал со своей легендарной Скудерией, побеждал в Альфа Ромео и создал легенду, от которой до сих пор сжимаются души фанатов гонок и скоростных автомобилей. Погружаясь в историю мистера Энцо Феррари, я всегда думаю о том, что он мог бы быть родоначальником оверклокеров как явления. Потому что оверклокинг — это не просто про фан или азарт, это про строгие эксперименты, инженерный талант и стремление сделать мир круче. Но не стал ли оверклокинг уже историей?

Сегодня, в почти-что-день-оверклокера, мы хотим расспросить олдов — как вы там, всё ещё разгоняете или хобби уже ушло в прошлое? И этот разговор не случаен.
Читать дальше →
Всего голосов 40: ↑37 и ↓3 +34
Просмотры 9.7K
Комментарии 30

Проблемы с JAMStack: вам может понадобиться бекенд

Блог компании Издательский дом «Питер» Высокая производительность *Разработка веб-сайтов *JavaScript *Программирование *
Перевод

У отличных приложений должны быть отличные маркетинговые сайты – именно поэтому всегда стоит присматриваться к новым трендам и разработкам в системах управления контентом (CMS). Притом, что в этой нише традиционно доминируют опенсорсные гиганты, такие как WordPress и Drupal, со времен перезапуска Smashing Magazine еще в 2017 году начал возрождаться интерес к статическим сайтам.

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

В то время, как сегодня есть много людей, громогласно высказывающихся в пользу современных статических сайтов, но один из крупнейших таких поборников – Маттиас Биильманн из Netlify, который и придумал  JAMStack (название может показаться слегка абсурдным) и помог популяризовать потоки задач, в которых используются такие инструменты, как статические CMS и API для электронной коммерции.

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 1.6K
Комментарии 2

Шаринг сокет-соединения между вкладками

Блог компании HeadHunter Высокая производительность *Разработка веб-сайтов *JavaScript *

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

Для желающих посмотреть на предмет сабжа в динамике у нас есть видеоверсия этой статьи. 

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 2.9K
Комментарии 7

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