С релизом .NET 8 в арсенале C# разработчиков появилась новая коллекция – FrozenDictionary. Особенность этого словаря в том, что он неизменяемый, но при этом обеспечивает более быстрое чтение по сравнению с обычным Dictionary
. Я неспроста разбил результаты на обложке по типам – используемые во FrozenDictionary
алгоритмы сильно зависят от типа ключа, размера словаря или даже, например, количества строковых ключей одинаковой длины. В этой статье подробно разберем, насколько FrozenDictionary
быстрее и почему.
Высокая производительность *
Методы получения высокой производительности систем
Инструменты для оптимизации времени
В какой-то момент дел становится так много, что невозможно все держать в голове, поэтому мы ищем помощь извне. Тут нас выручают инструменты для оптимизации времени.
Хотим поделиться с вами парочкой таск-трекеров, который помогут облегчить вам жизнь!
Camunda 8. Почему не стоит использовать Connectors Bundle
Для Camunda Platform есть Connectors Bundle, который быстро помогает формировать взаимодействие между сервисами. Но так ли хорошо это решение? Рассмотрим на примере Rest Connector'a.
Встроенная графика AMD Radeon 890M оказалась мощнее дискретной видеокарты GeForce RTX 3050
В последние годы AMD активно развивает направление интегрированной графики. Сейчас компания готовится представить мощнейший видеочип Radeon 890M, который, вероятно, задаст новую планку производительности. Согласно утечкам синтетических тестов, новый iGPU обходит по производительности не только предыдущего лидера в лице Radeon 780M, но и некоторые дискретные видеокарты среднего уровня, такие как GeForce RTX 3050 в мобильном исполнении.
Истории
Распределённые блокировки с помощью Tarantool 3
Распределённая блокировка — очень удобный инструмент в кластере, который помогает обеспечивать эксклюзивный доступ к некоторому общему ресурсу. Цель такой блокировки — обеспечить доступ к ресурсу лишь одному сервису или запросу в данный момент времени. Так предотвращается гонка за данными и их неконсистентность. Распределённая (или кластерная) блокировка называется так потому, что она обеспечивается несколькими узлами, и выход из строя одного из них не повлияет на приложение. В этой статье я расскажу, как реализовать этот инструмент с помощью Tarantool 3.
Китайская процессорная архитектура LoongArch продолжает развиваться: вышел 16-ядерный конкурент Intel Xeon
Привет, Хабр! На связи Антон Комаров, сегодня расскажу о новостях из мира LoongArch.
Китайцы продолжают развивать национальную отрасль разработки и производства электроники. У них получается не только выпускать обычные чипы, но и создавать современные процессоры на основе собственной архитектуры — LoongArch.
На днях компания Loongson из КНР заявила о выпуске нового процессора 3C6000. По мнению разработчиков, он может конкурировать с чипами Intel Xeon поколения Ice Lake. У 3C6000 16 ядер, но можно объединить четыре процессора и получить сразу 64 вычислительных ядра. Подробности — под катом.
Сравнение ARM и x86: от структуры чипов до применения
Вы когда-нибудь задумывались, почему ваш смартфон работает на процессоре ARM, а мощный игровой ПК — на x86? Эти две архитектуры играют ключевую роль в современных технологиях, но используются в разных устройствах. ARM-процессоры применяют в смартфонах, планшетах, умных часах, MacBook и даже некоторых серверах благодаря низкой потребляемой мощности. Процессоры на x86 известны своей производительностью и гибкостью, что делает их идеальными для сильных ПК и серверов.
В этой статье мы разберем, чем отличаются эти архитектуры, как они работают и почему ARM стал популярным выбором для мобильных устройств, а x86 сохраняет позиции в мире мощных ПК и серверных решений.
Математика надёжности. Доклад Яндекса
Вадим Мартынов, руководитель команды платформы надёжности в Яндекс Go, в своём докладе рассказал, как влияют те или иные решения на надёжность системы и как это учитывать при разработке.
Продолжаем выжимать максимум из PostgreSQL
В апреле этого года мы, команда производительности из Postgres Professional, совместно с коллегами из Selectel решили протестировать несколько дистрибутивов PostgreSQL и узнать, как они себя поведут на разных архитектурах. С результатами можно ознакомиться в этой статье, но, как сразу было верно отмечено читателями, там был один важный косяк – мы не сравнили производительность ванильного PostgreSQL с применением всем известных настроек по улучшению производительности и Postgres Pro Enterprise из коробки as is. Терпеть такое не было решительно никакой возможности, поэтому сегодня будет продолжение истории и ответ на важный для многих вопрос: «А есть ли у нашего форка хоть какое-то преимущество перед бесплатной ваниллой?» Или мы просто накатили общеизвестный конфиг и занимаемся импортозаместительным переклеиванием наклеек?
Распределенные вычисления на Elixir: основные варианты реализации
Сегодня поговорим с вами о теме распределённых вычислений на Elixir. Мы больше не можем позволить себе писать приложения, которые работают только на одной машине. Пришло время создавать системы, которые могут выдержать любую нагрузку и работать бесперебойно даже в случае выхода из строя отдельных компонентов.
Elixir — это язык программирования, который вырос на основе мощной виртуальной машины BEAM, используемой в Erlang. Это сразу даёт нам ряд фич: хорошую масштабируемость, встроенную поддержку конкурентности и возможность строить распределённые системы.
В этой статье мы рассмотри основные инструменты для реализации распределённых вычислений Elxir.
Деградация кода — это результат неправильной организации процессов
Мне сильно повезло работать в организации, предпринимающей добросовестные усилия по обеспечению мощи своих команд. Но я работал и в других местах, где этого не происходило.
На своей должности руководителя разработки я стал непосредственным свидетелем разницы между командой, которой предоставили мощь и… какой антоним у мощи? Они были не слабыми, а, скорее, немощными.
Силу команды постоянно нужно подстёгивать и стимулировать, сама по себе она не развивается.
Что я под этим подразумеваю? Давайте поговорим о том, как немощные организации влияют на техническую работу.
Здесь есть большой выбор тем, от неэффективного использования ресурсов и плохой документации до отсутствия возможностей улучшения процессов «снизу».
Я руководитель разработки, поэтому смотрю на это с точки зрения технаря. Немногие книги о совершенствовании процессов рассматривают углублённо рассматривают улучшение процессов разработки.
Давайте изучим это на примере деградации кода.
Правильный инструмент для аналитики нагрузочного тестирования
В данной статье хочу рассказать про сервис load-testing-hub, главная задача которого это сбор, агррегация, анализ и визуализация данных о нагрузочном тестировании
Расскажу о том, какие проблемы решает сервис, как он помогает оценивать производительность выпускаемых релизов, а также поделюсь примерами его использования
Рассмотрим основные возможности load-testing-hub, такие как создание наглядных графиков и отчетов, сравнение результатов нагрузочных тестов
1С РИБ опять тормозит. Как лечить?
Назрела тут тема про обмены между базами данных 1С. Даже сузим круг и поговорим об обменах между гомогенными базами данных (базами данных с идентичными конфигурациями).
Ситуации когда бизнес предпочитает распределенные информационные системы централизованным системам – далеко не редкость. И чем ИТ-система больше, чем больше в ней пользователей и транзакций в единицу времени, тем сложнее поддерживать обмен между ее узлами на плаву. Обмен частенько тормозит и становится помехой пользователям и даже бизнесу...
Ближайшие события
Как настроить веб-приложение под высокие нагрузки
Привет, меня зовут Александр Ададуров. Я — руководитель проектов ФГБУ «Центр информационно-технического обеспечения». В этой статье я опишу опыт настройки сайта с образовательным контентом под нагрузку в пиках до 15 000 запросов в секунду или до нескольких миллионов пользователей в день.
Образовательный контент сайта представлял собой иллюстрированные HTML-страницы, видеоуроки и различные интерактивные задания, преимущественно на JavaScript, которые проверяли правильность выполнения заданий запросами к бэкенду. Сайт жил спокойной жизнью и вяло развивался до введения локдаунов в связи с распространением COVID-19. Первые месяцы карантина существенно изменили код приложения, его архитектуру и даже серверную инфраструктуру, на которой оно располагалось.
Эффективные и актуальные методы для быстрого увеличения конверсии вашего лендинга
Простые и работающие подходы, которые увеличат конверсию вашего сайта. Практические советы для достижения результата в кратчайшие сроки.
Правильная аналитика записей сессий: ключ к повышению конверсии вашего сайта
Как выявить и исправить скрытые проблемы вашего сайта для достижения наилучших результатов: оптимизация UX и повышение конверсии с помощью функционала записи сессий в инструментах аналитики.
Rust и иммутабельность
Привет, Хабр!
Иммутабельность данных в Rust – это основа для создания систем, устойчивых к ошибкам и сайд-эффектам. В этой статье рассмотрим, как Rust позволяет использовать неизменяемые структуры данных для улучшения производительности и безопасности приложений.
Начнем с синтаксических особенностей.
Математика матричных расширений: как происходит умножение матриц на примере T-Head Matrix Extension
Привет, Хабр! Я Андрей Соколов, инженер-программист в группе разработки математических библиотек. Месяц назад моя коллега Валерия запустила цикл статей про матричные расширения, ускоряющие операции над матрицами. Вы уже смогли узнать, что они делают и какие существуют, какие из них разрабатываются для открытой архитектуры RISC-V.
В заключительной статье цикла разберем пример использования матричного расширения T-Head под RISC-V для реализации алгоритма матричного умножения. Сначала кратко рассмотрим наивную скалярную реализацию и блочный вариант алгоритма. Затем реализуем аналогичный вариант с использованием матричного расширения — как для квадратных матриц, так и матриц произвольного размера. Второй случай интересен тем, что возникает необходимость обработки так называемых «хвостов» — блоков неправильной конфигурации. В заключение немного расскажу, какие идеи можно использовать для дальнейшей оптимизации матричного умножения, и поделюсь полезными ссылками.
Статья не показывает пошаговую оптимизацию умножения матриц для достижения максимума FLOPS и не учит, как писать вычислительные ядра на ассемблере. Она демонстрирует использование матричного расширения и основные идеи оптимизации матричного умножения. Постарался описать все простыми словами, с иллюстрациями и небольшими вставками кода.
Использование WFM в производстве
Эффективное управление производственными процессами требует точного учета, планирования и организации всех ресурсов предприятия, в т.ч. и персонала. В планы производства на предприятиях регулярно вносятся коррективы и для их выполнения требуется иметь возможно оперативно и оптимально перераспределить имеющиеся ресурсы для выполнения измененной производственной программы. В этой статье мы рассмотрим, как организовать и автоматизировать планирование расписания персонала в системе управления рабочей силой WFM TARGControl, исходя из актуального производственного плана предприятия.
Подбираем нужные автозапчасти: миллиарды комбинаций за 12 минут
Привет! Меня зовут Кирилл Егоров, я технический лидер двух юнитов Авито: «Запчасти» и «Строительство и ремонт». В этой статье рассказываю о том, как мы определяем, к каким автомобилям подходят запчасти из объявлений, как нам с помощью Golang удается перебрать миллиарды вариантов и какие трудности пришлось решить при реализации этого решения.
Вклад авторов
olegbunin 4532.5alizar 2443.3marks 1526.9olegchir 1183.4Kilor 1044.0YuriPanchul 915.5it_man 889.0AloneCoder 810.8alatobol 685.0ARG89 635.6