SlideShare a Scribd company logo
1 of 20
Download to read offline
Андрей Акиньшин,
Senior developer в
Rider
Как мы в Rider
производительность
улучшаем
—
Как выглядит Rider внутри
IntelliJ IDEA ReSharper
RdProtocol
2
Как мы решаем перфоманс проблемы
3
RPA: Retrospective Performance Analyzer
4
RPA: Retrospective Performance Analyzer
5
You don’t need:
● Special build agents
● Special performance tests
● Special setup
Performance alarms
Target performance anomalies:
● Degradations
● Clustering
● Huge standard deviation
● Multimodal distributions
● ...
TeamCity
RPA
Project
Dashboard
Raw test performance data
List of performance problems
6
Degradations
7
Degradations
8
Clustering
9
Clustering
10
Huge standard deviation
11
Huge standard deviation
12
Multimodal distributions
13
Multimodal distributions
14
Как всё работает на самом деле
15
Наша маленькая performance-ферма
16
Performance Culture
17
Performance asserts
Hardcoded timeout
Relative timeout
Adaptive timeout (based on performance history)
18
BenchmarkDotNet
19
Вопросы
и ответы
—

More Related Content

Similar to How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider

Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423kuchinskaya
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаSQALab
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...SQALab
 
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»Lviv Startup Club
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииCEE-SEC(R)
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
 
Бизнес и системный анализ весна 2013 лекция 8
Бизнес и системный анализ весна 2013 лекция 8Бизнес и системный анализ весна 2013 лекция 8
Бизнес и системный анализ весна 2013 лекция 8Technopark
 
React & Redux (Lazarev)
React & Redux (Lazarev)React & Redux (Lazarev)
React & Redux (Lazarev)Innovecs
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, OracleNata_Churda
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
О компании СетьПроект (краткий обзор)
О компании СетьПроект (краткий обзор)О компании СетьПроект (краткий обзор)
О компании СетьПроект (краткий обзор)Vsevolod Shabad
 
Embarcadero Team Server для администраторов БД
Embarcadero Team Server для администраторов БДEmbarcadero Team Server для администраторов БД
Embarcadero Team Server для администраторов БДAndrew Sovtsov
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыVsevolod Shabad
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance managementSQALab
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...e-Legion
 

Similar to How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider (20)

Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиента
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
 
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
 
Kanban vs scrum_v3
Kanban vs scrum_v3Kanban vs scrum_v3
Kanban vs scrum_v3
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Бизнес и системный анализ весна 2013 лекция 8
Бизнес и системный анализ весна 2013 лекция 8Бизнес и системный анализ весна 2013 лекция 8
Бизнес и системный анализ весна 2013 лекция 8
 
React & Redux (Lazarev)
React & Redux (Lazarev)React & Redux (Lazarev)
React & Redux (Lazarev)
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, Oracle
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
О компании СетьПроект (краткий обзор)
О компании СетьПроект (краткий обзор)О компании СетьПроект (краткий обзор)
О компании СетьПроект (краткий обзор)
 
Embarcadero Team Server для администраторов БД
Embarcadero Team Server для администраторов БДEmbarcadero Team Server для администраторов БД
Embarcadero Team Server для администраторов БД
 
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктурыГидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
Гидродинамическое моделирование: возможности оптимизации ИТ-инфраструктуры
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
 

More from JetBrains Russia

(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead
(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead
(No) Few Processes is yet a Process. Sergey Coox, .Net Department LeadJetBrains Russia
 
Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead
Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead
Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead JetBrains Russia
 
Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...
Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...
Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...JetBrains Russia
 
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team LeadXodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team LeadJetBrains Russia
 
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in KotlinKotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in KotlinJetBrains Russia
 
DevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCity
DevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCityDevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCity
DevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCityJetBrains Russia
 
DevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System AdministratorDevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System AdministratorJetBrains Russia
 
Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...
Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...
Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...JetBrains Russia
 
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Kotlin Native. Святослав Щербина, Senior Software Developer, KotlinKotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Kotlin Native. Святослав Щербина, Senior Software Developer, KotlinJetBrains Russia
 
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...JetBrains Russia
 
От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...
От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...
От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...JetBrains Russia
 
Эволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEA
Эволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEAЭволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEA
Эволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEAJetBrains Russia
 
Вступление. Максим Шафиров, СЕО
Вступление. Максим Шафиров, СЕОВступление. Максим Шафиров, СЕО
Вступление. Максим Шафиров, СЕОJetBrains Russia
 

More from JetBrains Russia (13)

(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead
(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead
(No) Few Processes is yet a Process. Sergey Coox, .Net Department Lead
 
Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead
Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead
Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead
 
Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...
Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...
Full-Stack Application Development Experience in Kotlin, Sergey Shkredov, New...
 
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team LeadXodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
 
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in KotlinKotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
 
DevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCity
DevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCityDevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCity
DevOps в команде TeamCity. Евгений Кошкин, Senior Software Developer, TeamCity
 
DevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System AdministratorDevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System Administrator
 
Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...
Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...
Зачем нам (и вам) нужны сообщества? или построение отношений с community как ...
 
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Kotlin Native. Святослав Щербина, Senior Software Developer, KotlinKotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
 
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
 
От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...
От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...
От идеи до релиза. Как в JetBrains появляются новые фичи и продукты. Констант...
 
Эволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEA
Эволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEAЭволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEA
Эволюция фич в IntelliJ IDEA. Николай Чашников, Team Leader Core Team, IDEA
 
Вступление. Максим Шафиров, СЕО
Вступление. Максим Шафиров, СЕОВступление. Максим Шафиров, СЕО
Вступление. Максим Шафиров, СЕО
 

How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider