Мы в компании Аквариус стремимся к тому, чтобы тестирование проходило без активного участия человека. Поэтому, продолжая предыдущую нашу статью про автоматизированное тестирование BMC: Тестирование BMC: Автоматизировать! Нельзя все руками, я расскажу про универсальное решение, которое мы создаем для получения показателей производительности BMC. Зачем это нужно и как мы пытаемся применять накопленный опыт в других направлениях, например при тестировании производительности нового для компании направления — СХД (Система Хранения Данных).
Рубрика «performance»
Тестирование BMС: поговорим о нагрузочном тестировании
2024-11-15 в 11:04, admin, рубрики: BMC, hardware, Microservices, performance, автотестирование, нагрузочное тестированиеValkey: миллион RPS c напёрстком дёгтя
2024-10-09 в 7:59, admin, рубрики: highload, performance, redis, ValkeyМы (R&D-банда devhands.io) закончили тестирование официального релиза Valkey и его сравнение с прародителем, Redis, форком которого тот является. Для тех, кто не очень в курсе: Valkey появился на свет после смены лицензии Redis, под покровительством облачных провайдеров, в первую очередь AWS.
Основное внимание мы уделили пропускной способности и времени отклика в режиме чтения - в зависимости от параметра io-threads, отвечающего за "частичный параллелизм" в этих продуктах. Забегая вперед, скажем, что в режиме записи результаты похожие и все пропорции сохраняются - всё-таки это in-memory store.
Как мы в Delivery Club outbox оптимизировали
2024-10-07 в 11:03, admin, рубрики: highload, outbox, performance, queue, vacuumПривет! Решил написать небольшую техническую статью о том, как мы ускорили запрос в таблицу, до которой не доходил autovacuum из-за большой нагрузки на БД примерно в 200 раз, а разгребание outbox очереди — ещё примерно в 3 раза.
Дисклеймер
Для понимания статьи понадобится кое-какое знание PostgreSql и микро-сервисов, углубляться в это я не могу: из-за этого статья разрастётся до неприличных масштабов, но приложу краткий список ссылок на материалы, где всё объяснено подробно:
Выжимаем максимум из PostgreSQL
2024-04-12 в 12:37, admin, рубрики: hardware, performance, postgresql, selectel, tuning, Администрирование баз данныхПривет! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!Читать полностью »
Сказка про For vs Foreach
2023-06-27 в 5:01, admin, рубрики: .net, .net core, C#, performance, Блог компании Контур, высокая производительностьВ предыдущих сериях
Микрооптимизации:
-
Сказка про Method as Parameter #dotnet #methods #gc
-
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
-
Пародия на замыкания #dotnet #methods #gc
-
yield return #dotnet #il-code
Про тредпул:
-
ThreadPool.Intro #dotnet #threadpool
Сказка про Branch prediction
2023-06-13 в 5:01, admin, рубрики: .net, .net core, C#, c#.net, optimization, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
Микрооптимизации:
-
Сказка про Method as Parameter #dotnet #methods #gc
-
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
-
Пародия на замыкания #dotnet #methods #gc
-
yield return #dotnet #il-code
Про тредпул:
-
ThreadPool.Intro #dotnet #threadpool
Reciprocal throughput
2023-05-30 в 6:11, admin, рубрики: .net, C#, c#.net, optimization, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
ThreadPool. async/await #dotnet #threadpool #il_code
yield return #dotnet #il-code
Пародия на замыкания #dotnet #methods #gc
ThreadPool.Intro #dotnet #threadpool
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
Сказка про Method as Parameter #dotnet #methods #gc
yield return
2023-05-03 в 10:51, admin, рубрики: .net, .net core, C#, c#.net, performance, performance optimization, Блог компании Контур, высокая производительность, ПрограммированиеВ предыдущих сериях
Пародия на замыкания #dotnet #methods #gc
ThreadPool.Intro #dotnet #threadpool
Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace #perfview
Сказка про Method as Parameter #dotnet #methods #gc
Сказка про Guid.NewGuid() #os_specific #dotnet #microoptimization
А вы никогда не задумывались, что yield return
Читать полностью »
Максимальная оптимизация игры «Жизнь» на Julia
2022-12-25 в 14:46, admin, рубрики: game of life, Julia, performance, высокая производительность, математикаЭто очень хорошой case для оптимизации. Алгоритм крайне прост и его знают все. Но сколько можно сделать!
1. Julia, попытка первая и наивная
Julia хорошо изображает из себя питоно-подобный язык с утиной типизацией, будучи по реализации совершенно не питоно подобной. При том что синтаксис у нее отличается от Питона (и индексы начинаются с 1), почти каждую строчку надо переписывать, но все эти переписывания кажутся довольно тривиальными, что делает ее хорошим языком для проекта, когда Python уже жмет. Но эта похожесть может сыграть дурную службу.
Наша первая реализация:
Читать полностью »
Быстрый консольный ввод на .NET
2022-12-15 в 17:50, admin, рубрики: .net, .net 7, C#, competitive programming, console, performanceВо времена, когда .NET был закрытой технологией только для Windows, за ним и языком C# закрепилась репутация платформы, которая отлично подходит для решения бизнес-задач, но непригодна для соревновательного программирования и написания высокопроизводительного кода.
Часто приходится слышать, что "шарпы медленные", особенно в контексте алгоритмических задач, например с timus.online и codeforces.com. И, увы, не только слышать, но и сталкиваться с реальными проблемами, связанными с особенностями платформы, получая Wrong Answer, Runtime Error, Memory Limit, Time Limit при корректном алгоритме.
Большинство этих проблем кроется в особенностях консольного ввода и вывода. Да и часто куда проще написать cin >> n
или sc.nextInt()
, чем int.Parse(Console.ReadLine())
или Console.ReadLine().Split().Select(int.Parse).ToArray()
, из-за чего выбор падает на другой язык.
Далее я расскажу о распространённых проблемах с консольным вводом-выводом в .NET, и о том, как сделать ввод быстрым и удобным.