SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Как мы
оптимизировали
ReSharper

Скрыган Кирилл,
JetBrains
DotTrace
Алгоритмическая производительность
• DotTrace – как инструмент анализа
  производительности
• Sampling: почти «честное» время выполнения,
  профилирование практически не накладное по
  производительности
Алгоритмическая производительность
• Tracing: дорогое профилирование, не отражает
  реального времени выполнения, но показывает
  количество вызов
• Timeline: инструмент для анализа
  производительности многопоточных приложений
Типичные продолбы
• Алгоритмический «взрыв» (квадрат или больше)
• Ожидание на lock’ах
• Memory traffic (о нём поподробнее )
Memory traffic: GC
• В деталях, механику CLR GC не знает никто, кроме
  самих CLR team. Алгоритмы и принципы CLR GC
  весьма закрыты.
Memory traffic: GC
• «Stop-the-world» - блокировка всех трэдов
• Чем больше memory traffic – тем чаще вызывается
  GC
• LOH – Large Object Heap (>82 Кб) – специальная
  куча для больших объектов
Memory traffic
• Стараемся не создавать новых объектов, там, где
  не нужно.
• Объекты зачастую неожиданно создаются в
  неочевидных местах.
Замыкания: то, что видим мы
Замыкания: что генерируется
Params: что мы видим
Params всегда аллоцирует объект!
Две лямбды…
…и только один замыкающий класс!
Yield
Во что компилируется yield
Closure scope
Ну и самое «сладкое»: IList vs List 
CodeFest 2013. Скрыган К. — Оптимизация .Net приложений на примере Resharper
Memory traffic: прочие примеры
• LinQ, Select and others
• Guid.ToString() создаёт дважды. Можно переписать
  через stackalloc
ReSharper: статический анализ
Соображения о структурах данных
• Equals вызывается чаще чем GetEntry? – см.
  коллизии
• Интернирующие структуры данных
• StringSlice – лекарство против SubString
CodeFest 2013. Скрыган К. — Оптимизация .Net приложений на примере Resharper
StringSlice в лексере


                        INTERN
Неочевидные соображения о структурах
данных : LocalList
LOH
• Объекты в LOH никогда не перемещаются
• LOH только растет и никогда не уменьшается (т.е.
  если объект собран сборщиком мусора, размер
  LOH все равно остается неизменным)
• Хип LOH освобождается только тогда, когда LOH
  полностью пуст
• Как следствие – OutOfMemory из-за сильно
  фрагментированной памяти
Пример: ChunkList
Boxing
• Очевидные проблемы: используем value types в
  качестве reference types
• public struct ToBeBoxed : IMySuperInterface {…}
• Не забываем что все итераторы – struct’ы!
.NET method group bug
                                 Lambda
Delegate target   Method group                Ratio
                                 expression

Class             329            463          0.71


Interface         24474          461          53.1


Struct            28372          400          71.0
Более общие соображения
• «Кризис среднего возраста» для объектов
• Есть смысл задумать о том, в каком поколении
  собираются объекты. Желательно, чтобы в Gen0 
• WeakReferences – только в крайнем случае.
Caches: тонкости
• LevelDb – храним кэши на диске
• DirectMappedCache, LRUWeakReferenceCache –
  «вытесняющие» словари с ограниченным
  размером
UI Thread: тонкости в обращении
• Chunked operations – прерываем операции в
  других потоках, чтобы не зависать в UI потоке
• InterruptableReadactivityCookie – операция,
  прерываемая в том числе по WriteLock.Acquire() из
  UI потока
Tools
• ReSharper – статический анализ кода на
  performance issues.
• DotTrace – профилятор
• DotMemory, .NET Memory Profiler – memory-
  профилятор
• DotPeek (ReSharper) – декомпилятор
• Ildasm.exe
Вопросы?


Скрыган Кирилл,
JetBrains
Kirill.skrygan@jetbrains.com
twitter.com/kskrygan

Más contenido relacionado

La actualidad más candente

Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Ontico
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)Ontico
 
Как устроен поиск
Как устроен поискКак устроен поиск
Как устроен поискAndrew Aksyonoff
 
JavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianJavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianMikhail Davydov
 
А. Аксенов "Как устроен NoSql", DUMP-2014
А. Аксенов "Как устроен NoSql", DUMP-2014А. Аксенов "Как устроен NoSql", DUMP-2014
А. Аксенов "Как устроен NoSql", DUMP-2014it-people
 
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Ontico
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС 2ГИС Технологии
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
 
Ivan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applicationsIvan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applicationsDrupalSib
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...Ontico
 
MongoDB первые впечатления
MongoDB первые впечатленияMongoDB первые впечатления
MongoDB первые впечатленияfudz1k
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
 
Владимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLВладимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLYandex
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)Ontico
 
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Ontico
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
 

La actualidad más candente (20)

Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 
Как устроен поиск
Как устроен поискКак устроен поиск
Как устроен поиск
 
JavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianJavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in Russian
 
А. Аксенов "Как устроен NoSql", DUMP-2014
А. Аксенов "Как устроен NoSql", DUMP-2014А. Аксенов "Как устроен NoSql", DUMP-2014
А. Аксенов "Как устроен NoSql", DUMP-2014
 
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
 
Ivan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applicationsIvan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applications
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
 
MongoDB первые впечатления
MongoDB первые впечатленияMongoDB первые впечатления
MongoDB первые впечатления
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Владимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLВладимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQL
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
 
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация, Андрей Аксенов (Sphinx)
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
 

Destacado

CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...
CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...
CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...CodeFest
 
CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...
CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...
CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...CodeFest
 
CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...
CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...
CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...CodeFest
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest
 
CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...
CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...
CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...CodeFest
 
CodeFest 2014. Ткачук М. — Minimalist design
CodeFest 2014. Ткачук М. — Minimalist designCodeFest 2014. Ткачук М. — Minimalist design
CodeFest 2014. Ткачук М. — Minimalist designCodeFest
 
CodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать все
CodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать всеCodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать все
CodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать всеCodeFest
 
CodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQL
CodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQLCodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQL
CodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQLCodeFest
 
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...CodeFest
 
CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...
CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...
CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...CodeFest
 
CodeFest 2012. Коломеец К. — Интранет vs Здравый смысл
CodeFest 2012. Коломеец К. — Интранет vs Здравый смыслCodeFest 2012. Коломеец К. — Интранет vs Здравый смысл
CodeFest 2012. Коломеец К. — Интранет vs Здравый смыслCodeFest
 
CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...
CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...
CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...CodeFest
 
CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?
CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?
CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?CodeFest
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest
 
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest
 
CodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космоса
CodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космосаCodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космоса
CodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космосаCodeFest
 
CodeFest 2013. Кармацкий А. — Картографический дизайн Яндекса
CodeFest 2013. Кармацкий А. — Картографический дизайн ЯндексаCodeFest 2013. Кармацкий А. — Картографический дизайн Яндекса
CodeFest 2013. Кармацкий А. — Картографический дизайн ЯндексаCodeFest
 
CodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игр
CodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игрCodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игр
CodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игрCodeFest
 
CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...
CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...
CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...CodeFest
 

Destacado (19)

CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...
CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...
CodeFest 2014. Снитко Д. — Арт-дирекшен. Как сделать так, чтобы дизайн расска...
 
CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...
CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...
CodeFest 2013. Селиванов В. — Юридическое оформление отношений с разработчика...
 
CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...
CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...
CodeFest 2012. Тиняков И. — Как попасть в ТОП-10 магазина Windows Phone 7, по...
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
 
CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...
CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...
CodeFest 2012. Ивано и Пашук. — Интеграция корпоративных приложений. Пример в...
 
CodeFest 2014. Ткачук М. — Minimalist design
CodeFest 2014. Ткачук М. — Minimalist designCodeFest 2014. Ткачук М. — Minimalist design
CodeFest 2014. Ткачук М. — Minimalist design
 
CodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать все
CodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать всеCodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать все
CodeFest, июль 2012. Кобзев Е. — Маркетинг должны делать все
 
CodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQL
CodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQLCodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQL
CodeFest 2013. Аверин С. — MySQL+HandlerSocket=NoSQL
 
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
 
CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...
CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...
CodeFest 2012. Телятников И. — Построение системы мониторинга ИТ-сервисов в С...
 
CodeFest 2012. Коломеец К. — Интранет vs Здравый смысл
CodeFest 2012. Коломеец К. — Интранет vs Здравый смыслCodeFest 2012. Коломеец К. — Интранет vs Здравый смысл
CodeFest 2012. Коломеец К. — Интранет vs Здравый смысл
 
CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...
CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...
CodeFest 2013. Давыдов М. — Проект на бою. Работает? Стабильно? Эффективно? М...
 
CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?
CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?
CodeFest 2013. Белый И. — Marmalade SDK. Что под капотом?
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
 
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
 
CodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космоса
CodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космосаCodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космоса
CodeFest, июль 2012. Карпов М. — Пользователи: сигнал из космоса
 
CodeFest 2013. Кармацкий А. — Картографический дизайн Яндекса
CodeFest 2013. Кармацкий А. — Картографический дизайн ЯндексаCodeFest 2013. Кармацкий А. — Картографический дизайн Яндекса
CodeFest 2013. Кармацкий А. — Картографический дизайн Яндекса
 
CodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игр
CodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игрCodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игр
CodeFest 2012. Шергин Д. — Разработка мульти-платформенных 3D-игр
 
CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...
CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...
CodeFest 2013. Rauschmayer A. — An overview of ECMAScript 6, the next version...
 

Similar a CodeFest 2013. Скрыган К. — Оптимизация .Net приложений на примере Resharper

Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Alexander Syrotenko
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Ontico
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest
 
андрей паньгин
андрей паньгинандрей паньгин
андрей паньгинkuchinskaya
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Ontico
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Ontico
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricksSveta Bozhko
 
Роман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умиратьРоман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умиратьDataArt
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Ontico
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Computer Science Club
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testingbeched
 
20100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture0320100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture03Computer Science Club
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программистаSlach
 
Анатомия веб-сервиса, Андрей Смирнов
Анатомия веб-сервиса, Андрей СмирновАнатомия веб-сервиса, Андрей Смирнов
Анатомия веб-сервиса, Андрей СмирновOntico
 
Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)Andrey Smirnov
 
Пишем самый быстрый хеш для кэширования данных
Пишем самый быстрый хеш для кэширования данныхПишем самый быстрый хеш для кэширования данных
Пишем самый быстрый хеш для кэширования данныхRoman Elizarov
 
Excelsior JET в действии
Excelsior JET в действииExcelsior JET в действии
Excelsior JET в действииNikita Lipsky
 

Similar a CodeFest 2013. Скрыган К. — Оптимизация .Net приложений на примере Resharper (20)

Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
 
андрей паньгин
андрей паньгинандрей паньгин
андрей паньгин
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)
 
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
 
Роман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умиратьРоман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умирать
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
Н. Иготти. Виртуализация и виртуальные машины. Лекция 02
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
20100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture0320100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture03
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
Анатомия веб-сервиса, Андрей Смирнов
Анатомия веб-сервиса, Андрей СмирновАнатомия веб-сервиса, Андрей Смирнов
Анатомия веб-сервиса, Андрей Смирнов
 
Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)
 
Пишем самый быстрый хеш для кэширования данных
Пишем самый быстрый хеш для кэширования данныхПишем самый быстрый хеш для кэширования данных
Пишем самый быстрый хеш для кэширования данных
 
Excelsior JET в действии
Excelsior JET в действииExcelsior JET в действии
Excelsior JET в действии
 

Más de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Más de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

CodeFest 2013. Скрыган К. — Оптимизация .Net приложений на примере Resharper

Notas del editor

  1. Конкретный пример здесь!