Привет! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!Читать полностью »
Рубрика «performance»
Выжимаем максимум из PostgreSQL
2024-04-12 в 12:37, admin, рубрики: hardware, performance, postgresql, selectel, tuning, Администрирование баз данныхСказка про 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, и о том, как сделать ввод быстрым и удобным.
Улучшенный benchstat для оптимизирующих гоферов
2022-12-03 в 16:04, admin, рубрики: benchcmp, benchmark, benchstat, Go, golang, performance, высокая производительность, ПрограммированиеПривет!
Если вы писали бенчмарки и пытались понять, что там ускорилось и на сколько, то наверняка вы пользовались утилитами вроде benchstat.
Мне очень нравится эта утилита, но временами я понимаю, что некоторые её особенности работают против меня. Сегодня я расскажу вам о своей обёртке над benchstat, которая добавляет улучшения, полезные в моей работе.
Method Dispatch
2022-06-25 в 12:54, admin, рубрики: iOS разработка, Method dispatch, performance, performance optimization, swift, разработка под iOSВы когда-нибудь задумывались над тем, как компилятор понимает, какую функцию и откуда вызвать? Постараемся разобраться.
Что такое Method Dispatch?
Method Dispatch - это алгоритм, который решает, какой метод должен вызываться в ответ на сообщение. Его цель заключается в том, чтобы проинформировать процессор о том, где он может найти код для вызова метода в памяти.
Swift имеет три типа method dispatch:
-
Static Dispatch
-
Table Dispatch
-
Message Dispatch
В чем отличие разных типов диспетчеризации?
Copy-on-write
2022-06-25 в 8:06, admin, рубрики: copy-on-write, CoW, iOS, performance, performance optimization, struct, swift, разработка под iOSПознакомился я с этой темой на одном из собеседований, когда мне задали вопрос о том, что есть какая-то большая структура и сколько памяти будет занято, если переменную с экземпляром этой структуры присвоить другой переменной. Тогда, вспоминая о том, что происходит при взятие подстроки, я ответил, что объем памяти не изменится и ошибся. Ну и уже после собеседования полез читать о copy-on-write (далее COW).