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

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

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

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

ChatGPT и Bullet: Изучение библиотек в эпоху «искусственного интеллекта»

Время на прочтение 6 мин
Количество просмотров 1.3K
Высокая производительность *Машинное обучение *

Неодолимая волна хайпа подхватила меня и бросила в ранее неизведанную мной местность ChatGPT. Что новое несет сие чудо человеческого интеллекта: погибель аки Скайнет или спасение? 

Я решил узнать, насколько быстро можно изучить библиотеку Bullet под чутким руководством ChatGPT. Ранее, мешок с костями уже представлял общее описание, составленное ущербным и отсталым методом варварских ударов пальцами по бедной клавиатуре. Что же сможет привнести в этот процесс кропотливого чтения, гугления и тщательного выписывания значимых фактов чудо дивное ChatGPT.

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

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

Новости

Дефрагментация таблиц в высоко нагруженных базах данных (MSSQL)

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.5K
Высокая производительность *SQL *Серверная оптимизация *Microsoft SQL Server *
Кейс

Хорошо, если у вас небольшие (сотни гигабайт) базы, а ночью или в выходные вы можете себе позволить иметь 'maintenance window' и дефрагментировать таблицы. А если нет? В любом случае дефрагментация многих терабайт может занять дни, так что существование maintenance window становится непринципиальным.

Case study: многие терабайты данных, деятельность связанная с процессингом карт (24/7, maintenance window нет в принципе), MSSQL. Разумеется, Enterprise Edition, разумеется AlwaysOn.

Миф: у нас SSD, поэтому дефрагментация нам не нужна. Еще как нужна! Часто в высоко нагруженных системах не делают дефрагментацию, потому что это сложно. В итоге процент фрагментации выходит на уровень почти 100%, и таблицы занимают в два раза больше страниц, чем нужно. В два раза больше места - это в два раза хуже Buffer Cache Hits Ratio. Это в два раза больше размер full backups. Это в два раза дольше full table scans. Это выше CPU (потому что страницы перемещаются с помощью процессора, а не сами по себе).

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 28

RabbitMQ: дополнительные возможности

Время на прочтение 8 мин
Количество просмотров 2.7K
Блог компании Southbridge Высокая производительность *Системное администрирование *IT-инфраструктура *DevOps *
Обзор

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

Что конкретно разберём:

расчёт количества консьюмеров по формуле Эрланга;

шардирование — различные способы балансировки;

дедупликацию сообщений в очереди;

многоуровневую очередь повторных попыток;

приоритеты сообщений.

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

Слышали ли вы про язык «e»? А ведь он был продан за $315 миллионов долларов

Время на прочтение 10 мин
Количество просмотров 33K
Высокая производительность *Параллельное программирование *FPGA *Программирование микроконтроллеров *Производство и разработка электроники *

Все знают про язык программирования C, поменьше — про язык программирования F, кое‑кто про B, предшественник C, а вот знаете ли вы про язык «e»? Их кстати два — один с большой буквы «E», а другой с маленькой «e».

Вы наверное подумали, что это еще один безызвестный язык от какого‑нибудь аспиранта провинциального европейского университета. Однако интерпретатор маленького «e» под названием Specman продали в 2005 году большой компании Cadence Design Systems за $315 милионов долларов. Причем президента продающей компании Verisity звали Гаврилов. Также можно нагуглить, что этот язык использовали внутри компании Intel. Что же в нем такого, что вызвало интерес у толстых богатых корпораций?

Читать далее
Всего голосов 58: ↑48 и ↓10 +38
Комментарии 46

Истории

Инструменты анализа эффективности работы приложения. PerfView

Время на прочтение 15 мин
Количество просмотров 2.4K
Блог компании Контур Высокая производительность *Программирование *.NET *C# *

Иногда приходится разбираться, почему .NET приложение работает "плохо". Не так, как мы ожидали. Тупит, медленно работает, зависает, запросы «не исполняются», утекает память или потребляется слишком много CPU.

Есть множество способов, как разбираться в таких ситуациях. Сегодня мы немного обсудим, что это за способы. Когда и какой способ нужно использовать. И более детально рассмотрим один из инструментов: PerfView.

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

Сравниваем структуры хоть и глубоко, но быстро

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.9K
Высокая производительность *Разработка веб-сайтов *JavaScript *Программирование *TypeScript *
Кейс

Здравствуйте, меня зовут Дмитрий Карловский и я.. автор множества микроскопических и самых шустрых в своём классе библиотек. Одна из них - $mol_compare_deep, умеющая сравнивать произвольные структуры, даже содержащие циклические ссылки. И сейчас я вам расскажу, как ей это удаётся.

Погрузиться поглубже
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 19

Ускорение компиляции КОМПАС-3D в 4 раза при помощи PCH

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.5K
Блог компании АСКОН Высокая производительность *C++ *Компиляторы *
Аналитика

Время сборки проекта имеет немалое значение в процессе разработки. Начиная с "комфорта" разработчика, при внесении изменений, заканчивая стоимостью оборудования, необходимого для организации CI.


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

Разбираемся с RabbitMQ: High Availability и High Load

Время на прочтение 8 мин
Количество просмотров 2.4K
Блог компании Southbridge Высокая производительность *Системное администрирование *IT-инфраструктура *DevOps *
Туториал

Продолжаем делиться конспектами Алексея Барабанова, IT-директора «Хлебницы». На этот раз обсудим специфику работы RabbitMQ с высокими нагрузками (High Load) и обеспечением высокой доступности (High Availability). Рассмотрим различные методы увеличения производительности и горизонтального масштабирования, разберём и настроим внутренние инструменты. Также по мере погружения постараемся изучить основные подводные камни всех подходов.

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

Postgres как предчувствие. Вычисляем процент импортозамещения в режиме Highload от 1С

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 3.7K
Высокая производительность *PostgreSQL *Microsoft SQL Server *Администрирование баз данных * *
Кейс
Recovery mode

1С работает с СУБД  Postgres более 10 лет, а сейчас это единственный легальный вариант для инсталляций в России. Много ли мы потеряем в производительности по сравнению с MS SQL ? Выдержит ли Postgres 15.2 жесткий Highload со стороны 1С? Цель этой статьи - ответить на данные вопросы, с цифрами, которые можно использовать при расчете архитектуры.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 34

На что способен хороший отладчик

Время на прочтение 13 мин
Количество просмотров 4.4K
Высокая производительность *Программирование *Visual Studio *Отладка *
Перевод

Порой приходится слышать: «Отладчики бесполезны, гораздо целесообразнее иметь дело с логированием и модульными тестами». Подозреваю, что многие из разделяющих такое мнение думают, будто отладчик только и может, что расставлять точки останова на определённых строках, пошагово просматривать код и проверять значения переменных. Притом, что любой годный отладчик действительно всё это может, на самом деле это только верхушка айсберга. Задумайтесь: мы уже вполне можем наткнуться на код, которому около 40 лет; наверняка же с тех пор что-то изменилось?  

Tl;dr — в этом эпизоде дедовского нытья вы узнаете, что хороший отладчик поддерживает различные виды точек останова, предлагает широкие возможности визуализации данных, имеет среду REPL для выполнения выражений, может показывать зависимости между потоками и контролировать их выполнение, может подхватывать изменения в исходном коде и применять их без перезапуска программы. Также он может проходить код от конца к началу и перематывать состояние программы до любого момента в истории её выполнения. Можно даже записать весь ход управления программы и визуализировать поток управления и историю потока данных.

Читать далее
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 10

Трассировка сервисов через очередь сообщений. OpenTelemetry, NATS

Уровень сложности Сложный
Время на прочтение 4 мин
Количество просмотров 1.8K
Высокая производительность *Программирование *Go *DevOps *Облачные сервисы *
Туториал

Это небольшой гайд о том, как обеспечить наблюдаемость в вашей событийно-ориентированной облачной системе.

Читать далее
Всего голосов 5: ↑1 и ↓4 -3
Комментарии 9

Node.JS: заменили модуль SSH2 на OpenSSH и снизили задержки eventloop в 15 раз

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 3.2K
Блог компании Тензор Высокая производительность *JavaScript *Программирование *Node.JS *
Кейс

В нашем сервисе мониторинга и анализа PostgreSQL доступ к серверам осуществляется по протоколу SSH. В качестве ssh-клиента мы используем популярный модуль SSH2 , однако при передаче данных большого объема этот модуль вносит существенные задержки в event loop. Как их можно снизить - расскажем в этой статье.

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

Приглашаем на Ozon Tech Community C# Meetup

Время на прочтение 2 мин
Количество просмотров 1.4K
Блог компании Ozon Tech Высокая производительность *.NET *C# *Конференции

Меня зовут Миша, и я старший разработчик группы «Отгрузка и планирование логистики продавца» в Ozon.

C# можно встретить везде: в огромных монолитах, в десктопных приложениях, в мобильной разработке, даже в геймдеве, не говоря уже о самых передовых разработках на  микросервисной архитектуре. У нас в Ozon C# — один из основных языков, даже есть свои курсы Route 256 для Net-разработчиков, где мы в течение двух месяцев делимся опытом разработки микросервисов в лидирующем e-com, и, кстати, я там преподаю. 

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

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

Как преодолеть границу роста мощностей?

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.5K
Блог компании CloudMTS Высокая производительность *Исследования и прогнозы в IT *Искусственный интеллект Процессоры
Обзор
image

Вычислительные ресурсы виртуальных дата-центров практически не ограничены. Однако, если ваша компания генерирует большое количество данных, в конце концов целесообразность работы с обычными ЦОД будет под вопросом. Чем больше расстояние между локацией с серверами и местом сбора данных, тем ниже скорость вычислений.

В этом контексте набирают обороты так называемые граничные вычисления (edge computing). В такой парадигме данные обрабатывают на «границе сети» как можно ближе к клиентам. Переход к edge-инсталляциям имеет жизненно важное значение для решения проблем с задержками и построения действительно интеллектуальных и автономных систем, таких как беспилотный транспорт.

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

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

Геопространственная DuckDB

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1.6K
Высокая производительность *Open source *Геоинформационные сервисы *Хранение данных *
Перевод

Большую часть прошлого года я работал с Hexvarium. Базирующаяся в Атертоне, штат Калифорния, компания строит и управляет оптоволоконными сетями. В настоящее время у них есть несколько сетей в районе залива, но у них есть планы по расширению в США.

Моя роль заключается в управлении платформой данных, которая содержит 30 миллиардов записей примерно из 70 источников информации. Эти данные используются инженерами, разрабатывающими оптимальные планы развертывания оптоволоконной сети с помощью LocalSolver. Далее приведен пример одного из таких планов.

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

Inline и throw

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 4.9K
Высокая производительность *.NET *C# *
Мнение

Изучая производительность методов в различных коллекциях, я наткнулся на интересный факт: там, где нужно выбросить Exception, программисты дёргают метод в статическом классе, в котором и происходит throw. Поначалу я думал, что это просто удобно — иметь все ошибки в одном месте и там следить за их единообразием. Это да, это действительно удобно. Но есть нюанс...

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

Dictionary<int, T>: очень специальный

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 3.3K
Высокая производительность *.NET *C# *
Мнение

Как-то раз была поставлена задача ускорить работу с Dictionary<int,?>, где ключом всегда выступал int, а значением - структура. Имеющаяся скорость не устраивала. Более того, очень бы хотелось иметь возможность получать ссылку (ref) на значение в Dictionary, чтобы можно было изменять содержимое извне. В настоящий момент полнофункциональный словарь из dotnet такого поведения не поддерживает.

В статье, как и в предыдущей, речь пойдёт о наносекундах и экономии байтиков. Уверен, что 99% программистов этого не нужно, а подобные эксперименты без изучения environment'a будут даже опасны. Однако, если ваш профиль high-load или геймдев, данная информация может быть востребована.

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 32

Array: for/foreach или unsafe

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 5.8K
Высокая производительность *.NET *C# *
Мнение

Я много работаю с массивами, поэтому хотел бы освежить тему того, как наиболее быстро по нему перемещаться в C#. Речь пойдёт об экономии наносекунд и оптимизации на уровне IL-кода. Кажется, что в 99% случаев вам это знать не нужно и задумываться об этом не стоит. Тем не менее, для горячих сценариев или если вы из high-load или геймдева, вам это может пригодиться.

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

Какой сервис сетевой связности использовать: глобальный роутер Selectel, Direct или Global Connect?

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.3K
Блог компании Selectel Высокая производительность *IT-инфраструктура *Сетевые технологии *Распределённые системы *
Обзор

Существует много способов, как организовать инфраструктуру. Например, можно объединить on-premise с сервером или облаком провайдера. Или собрать географически распределенную инфраструктуру в нескольких регионах.

Но как объединить разные серверы и проекты в одну сеть? Какую услугу использовать: глобальный роутер Selectel, Direct или Global Connect — и в чем разница? С такими же вопросами к нам приходят клиенты. Поэтому мы постарались дать гайд по выбору услуги. О том, что из этого получилось, рассказываем под катом.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 0

Исследование нескольких проблем, обнаруженных при статическом анализе

Время на прочтение 5 мин
Количество просмотров 2.3K
Блог компании Издательский дом «Питер» Высокая производительность *Программирование *C++ *Профессиональная литература *
Перевод
В последнее время мы занимались статическим анализом нашей кодовой базы. В результате было выявлено несколько проблем в коде C++, которые мне пришлось исправлять. Это в очередной раз помогло мне осознать, каково совершать такие ошибки, которые обычно трудно найти, просто взглянув на код (человеческим глазом). Я считаю, что стоит поделиться опытом решения некоторых из этих проблем. Не могу опубликовать мой реальный код, он все равно будет слишком сложным, но я использую несколько простых фрагментов, в которых продемонстрированы те же проблемы, что встретились мне в проанализированном коде. Это (надеюсь) поможет вам легко понять как проблему, так и её решение.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 3

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