SlideShare une entreprise Scribd logo
ОПТИМИЗАЦИЯ
ПОТРЕБЛЕНИЯ ПАМЯТИ В JAVA
делаем уборку правильно
12 ноября 2016
Евгений Берлог
EPAM Systems
Senior Software Engineer
2
3
4
ОСОБЕННОСТИ ЗАДАЧИ
# REST + MongoDB
# Жесткие требования к времени ответа
# Stateless
5
УСЛОВИЯ ТЕСТИРОВАНИЯ
# 10000 URL с реального окружения
# ~30 вызовов в секунду (реальная нагрузка + 50%)
ЗАМЕРЫ УСПЕШНОСТИ
# Максимальная пауза
# Пропускная способность
# Частота Full GC
7
Исходные замеры
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
1918мс 99.0% 5развчас
НЕМНОГО ТЕОРИИ
9
Распределение памяти
10
Первая сборка
11
Вторая сборка
12
Как происходит старение
13
Большая сборка
ГИПОТЕЗА
О СТАРЕНИИ ОБЪЕКТОВ
ГИПОТЕЗА О СТАРЕНИИ
ОБЪЕКТОВ
Время жизни
Размеробъектов
16
НО РЕАЛЬНАЯ И
ТЕОРЕТИЧЕСКАЯ
СИТУАЦИИ РАЗЛИЧАЮТСЯ
17
НО РЕАЛЬНАЯ И
ТЕОРЕТИЧЕСКАЯ
СИТУАЦИИ РАЗЛИЧАЮТСЯ
КАК
МОНИТОРИТЬ
СИТУАЦИЮ ?
19
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
20
Вывод детализированного сообщения после каждого
запуска Garbage Collector’а.
-XX:+PrintGCDetails
dsc2016
[PSYoungGen: 1559493K->93696K(1610752K)] 2771413K->1379948K(5106176K),
0.1586049 secs]
21
-XX:+PrintGCTimeStamps
dsc2016
1914.990: [GC
[PSYoungGen: 1559493K->93696K(1610752K)] 2771413K->1379948K(5106176K),
0.1586049 secs]
Добавление в каждую GC-запись времени
относительно старта JVM.
22
-XX:+PrintTenuringDistribution
dsc2016
Desired survivor size 134217728 bytes, new threshold 15 (max 15)
Вывод в лог порога старения объектов и
необходимого размера Survivor региона.
23
1914.990: [GC
Desired survivor size 134217728 bytes, new threshold 1 (max 15)
[PSYoungGen: 1559493K->93696K(1610752K)] 2771413K->1379948K(5106176K),
0.1586049 secs]
1932.209: [GC
Desired survivor size 136839168 bytes, new threshold 1 (max 15)
[PSYoungGen: 1569792K->53234K(1611776K)] 2856044K->1408182K(5107200K),
0.1083012 secs]
dsc2016
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
ADAPTIVE SIZE POLICY
26
ADAPTIVE SIZE POLICY – это попытка
JVM реорганизовать память с целью достичь
(#1) уменьшения GC паузы;
(#2) увеличения пропускной способности;
(#3) уменьшения footprint’а.
-XX:AdaptiveSizePolicyOutputInterval=1
27
ЛОГИ GC С ВКЛЮЧЕННЫМ ASP
UseAdaptiveSizePolicy actions to meet *** reduced footprint ***
GC overhead (%)
Young generation: 1.26 (attempted to shrink)
Tenured generation: 0.00 (no change)
Tenuring threshold: (attempted to decrease to balance GC costs) = 2
dsc2016
28
ЛОГИ GC С ВКЛЮЧЕННЫМ ASP
UseAdaptiveSizePolicy actions to meet *** reduced footprint ***
GC overhead (%)
Young generation: 1.26 (attempted to shrink)
Tenured generation: 0.00 (no change)
Tenuring threshold: (attempted to decrease to balance GC costs) = 2
dsc2016
30
Эксперимент #1:
Указываем максимальную задержку
-XX:GCTimeRatio=999
// по умолчанию 99
-XX:MaxGCPauseMillis=100
// по умолчанию не ограничен
32
Результат для максимальной
задержки
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
2092мс 99.0% 5развчас
# Выключаем Adaptive Size Policy
# Уменьшаем Old Generation
# Максимум на Eden
# Экспериментально высчитываем Survivor Size
35
Эксперимент #2:
Дальше не по правилам
36
Эксперимент #2:
Дальше не по правилам
-XX:-UseAdaptiveSizePolicy
-Xmx5G -Xms5G
-Xmn4300M
-XSurvivorRatio=6
38
Результат c выключенным
Adaptive Size Policy
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
1683мс 99.3% 1разв3.5часов
39
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
Базовыенастройки 1918МС 99.0% 5развчас
Максимальнаяпауза 2092МС 99.0% 5развчас
ВыключенныйASP 1683МС 99.3% 1разв3.5часов
Промежуточный результат
- Может пора остановиться?
Concurrent Mark Sweep
Collector
42
Concurrent Mark Sweep (CMS) Collector
# То же распределение регионов, что и в Parallel
# Тот же алгоритм, что и в Parallel для младшего
поколения
# Часть работы в старшем поколении
выполняется параллельно
# Больше footprint, чем в Parallel
44
Эксперимент #3:
Меняем GC!
-XX:+UseConcMarkSweepGC
-Xmx5G -Xms5G -Xmn4300M
-XX:SurvivorRatio=2
46
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
283мс 99.2% 1разв4часа
Результат c новым GC
47
dsc2016
: 1460888K->10522K(1595776K), 0.0049030 secs] 1697910K->247592K(2210176K),
0.0049871 secs]
1195.459: [GC1195.459: [ParNew
Desired survivor size 74252288 bytes, new threshold 15 (max 15)
- age 1: 690016 bytes, 690016 total
- age 2: 148448 bytes, 838464 total
- age 3: 751056 bytes, 1589520 total
...
- age 13: 82512 bytes, 3801784 total
- age 14: 607816 bytes, 4409600 total
- age 15: 1348728 bytes, 5758328 total
Анализ логов CMS
...
- age 13: 82512 bytes, 3801784 total
- age 14: 607816 bytes, 4409600 total
- age 15: 1348728 bytes, 5758328 total
15299.307: [GC [1 CMS-initial-mark: 581268K(839680K)] 1241313K(4142080K),
0.2830091 secs]
15306.520: [GC[YG occupancy: 1031447 K (3302400 K)]15306.520: [Rescan
(parallel) , 0.2487740 secs]15306.769: [weak refs processing, 0.0012183
secs]15306.770: [scrub string table, 0.0012292 secs] [1 CMS-remark:
581268K(839680K)] 1612715K(4142080K), 0.2518813 secs]
...
- age 13: 82512 bytes, 3801784 total
- age 14: 607816 bytes, 4409600 total
- age 15: 1348728 bytes, 5758328 total
15299.307: [GC [1 CMS-initial-mark: 581268K(839680K)] 1241313K(4142080K),
0.2830091 secs]
15306.520: [GC[YG occupancy: 1031447 K (3302400 K)]15306.520: [Rescan
(parallel) , 0.2487740 secs]15306.769: [weak refs processing, 0.0012183
secs]15306.770: [scrub string table, 0.0012292 secs] [1 CMS-remark:
581268K(839680K)] 1612715K(4142080K), 0.2518813 secs]
50
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
cms 283МС 99.2% 1разв4часа
parallel 1681МС 99.3% 1разв3.5часов
CMS vs PARALLEL
51
Почему не G1?
> G1 рекомендуется использовать при
размерах heap’а от 6ГБ
53
Эксперимент #4:
Используем сборщик G1
-XX:UseG1GC
55
Максимальнаяпауза Пропускнаяспособность ЧастотаFullGC
351мс 95.9% ?
Результат c использованием G1
57
Максимальнаяпауза Пропускнаяспособность
Parallel 1681МС 99.3%
G1 351МС 95.9%
cms 283МС 99.2%
Долгожданный победитель
58
Максимальнаяпауза ПРопускнаяспособность
Parallel 1681МС 99.3%
G1 351МС 95.9%
cms 283МС 99.2%
Долгожданный победитель
Оптимизация потребления памяти в Java - делаем уборку правильно

Contenu connexe

Tendances

Марина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизуМарина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизуYandex
 
AnyEvent::HTTPBenchmark
AnyEvent::HTTPBenchmarkAnyEvent::HTTPBenchmark
AnyEvent::HTTPBenchmark
Naim Shafiev
 
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
AvitoTech
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
Iosif Itkin
 
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014
CleverDATA
 
Call of Postgres: Advanced Operations (part 2)
Call of Postgres: Advanced Operations (part 2)Call of Postgres: Advanced Operations (part 2)
Call of Postgres: Advanced Operations (part 2)
Alexey Lesovsky
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsguest092df8
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Ontico
 
PostgreSQL Vacuum: Nine Circles of Hell
PostgreSQL Vacuum: Nine Circles of HellPostgreSQL Vacuum: Nine Circles of Hell
PostgreSQL Vacuum: Nine Circles of Hell
Alexey Lesovsky
 
Call of Postgres: Advanced Operations (part 3)
Call of Postgres: Advanced Operations (part 3)Call of Postgres: Advanced Operations (part 3)
Call of Postgres: Advanced Operations (part 3)
Alexey Lesovsky
 
Cpanm
CpanmCpanm
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsrit2010
 
Web sockets
Web socketsWeb sockets
Web sockets
Eugene Lisitsky
 
настройка Free Bsd для обслуживания 100 200 тысяч соединений игорь сысоев
настройка Free Bsd для обслуживания 100 200 тысяч соединений   игорь сысоевнастройка Free Bsd для обслуживания 100 200 тысяч соединений   игорь сысоев
настройка Free Bsd для обслуживания 100 200 тысяч соединений игорь сысоевMedia Gorod
 
13 встреча — Сжатие данных (Р. Одинцов)
13 встреча — Сжатие данных (Р. Одинцов)13 встреча — Сжатие данных (Р. Одинцов)
13 встреча — Сжатие данных (Р. Одинцов)
Smolensk Computer Science Club
 
Админская_паранойя_в_быту
Админская_паранойя_в_бытуАдминская_паранойя_в_быту
Админская_паранойя_в_быту
Denis Zhdanov
 
Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)
Alexey Lesovsky
 
Reactive UI на C#
Reactive UI на C#Reactive UI на C#
Reactive UI на C#
Nikolay Yasinskiy
 
Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)
Alexey Lesovsky
 

Tendances (20)

Марина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизуМарина Широчкина: Верстка. Вид снизу
Марина Широчкина: Верстка. Вид снизу
 
AnyEvent::HTTPBenchmark
AnyEvent::HTTPBenchmarkAnyEvent::HTTPBenchmark
AnyEvent::HTTPBenchmark
 
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
 
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014
Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014
 
Call of Postgres: Advanced Operations (part 2)
Call of Postgres: Advanced Operations (part 2)Call of Postgres: Advanced Operations (part 2)
Call of Postgres: Advanced Operations (part 2)
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
 
PostgreSQL Vacuum: Nine Circles of Hell
PostgreSQL Vacuum: Nine Circles of HellPostgreSQL Vacuum: Nine Circles of Hell
PostgreSQL Vacuum: Nine Circles of Hell
 
Call of Postgres: Advanced Operations (part 3)
Call of Postgres: Advanced Operations (part 3)Call of Postgres: Advanced Operations (part 3)
Call of Postgres: Advanced Operations (part 3)
 
Cpanm
CpanmCpanm
Cpanm
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Web sockets
Web socketsWeb sockets
Web sockets
 
настройка Free Bsd для обслуживания 100 200 тысяч соединений игорь сысоев
настройка Free Bsd для обслуживания 100 200 тысяч соединений   игорь сысоевнастройка Free Bsd для обслуживания 100 200 тысяч соединений   игорь сысоев
настройка Free Bsd для обслуживания 100 200 тысяч соединений игорь сысоев
 
Ua
UaUa
Ua
 
13 встреча — Сжатие данных (Р. Одинцов)
13 встреча — Сжатие данных (Р. Одинцов)13 встреча — Сжатие данных (Р. Одинцов)
13 встреча — Сжатие данных (Р. Одинцов)
 
Админская_паранойя_в_быту
Админская_паранойя_в_бытуАдминская_паранойя_в_быту
Админская_паранойя_в_быту
 
Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)Call of Postgres: Advanced Operations (part 1)
Call of Postgres: Advanced Operations (part 1)
 
Reactive UI на C#
Reactive UI на C#Reactive UI на C#
Reactive UI на C#
 
Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 5)
 

En vedette

Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)
Vitebsk Miniq
 
Соревнования по программированию
Соревнования по программированиюСоревнования по программированию
Соревнования по программированию
Vitebsk Miniq
 
Строим плот - Как не утонуть в данных
Строим плот - Как не утонуть в данныхСтроим плот - Как не утонуть в данных
Строим плот - Как не утонуть в данных
Vitebsk Miniq
 
Разработка в долг
Разработка в долгРазработка в долг
Разработка в долг
Vitebsk Miniq
 
ES2015+: давно пора!
ES2015+: давно пора!ES2015+: давно пора!
ES2015+: давно пора!
Vitebsk Miniq
 
Жизнь после promises
Жизнь после promisesЖизнь после promises
Жизнь после promises
Vitebsk DSC
 
Собираем будильник правильно
Собираем будильник правильноСобираем будильник правильно
Собираем будильник правильно
Vitebsk Miniq
 
Виртуализация
ВиртуализацияВиртуализация
Виртуализация
Vitebsk Miniq
 
Blockchain: is just buzzword?
Blockchain: is just buzzword?Blockchain: is just buzzword?
Blockchain: is just buzzword?
Vitebsk Miniq
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
Volker Hirsch
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
 

En vedette (11)

Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)
 
Соревнования по программированию
Соревнования по программированиюСоревнования по программированию
Соревнования по программированию
 
Строим плот - Как не утонуть в данных
Строим плот - Как не утонуть в данныхСтроим плот - Как не утонуть в данных
Строим плот - Как не утонуть в данных
 
Разработка в долг
Разработка в долгРазработка в долг
Разработка в долг
 
ES2015+: давно пора!
ES2015+: давно пора!ES2015+: давно пора!
ES2015+: давно пора!
 
Жизнь после promises
Жизнь после promisesЖизнь после promises
Жизнь после promises
 
Собираем будильник правильно
Собираем будильник правильноСобираем будильник правильно
Собираем будильник правильно
 
Виртуализация
ВиртуализацияВиртуализация
Виртуализация
 
Blockchain: is just buzzword?
Blockchain: is just buzzword?Blockchain: is just buzzword?
Blockchain: is just buzzword?
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 

Similaire à Оптимизация потребления памяти в Java - делаем уборку правильно

Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Fwdays
 
Об одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл Голоднов
Об одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл ГолодновОб одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл Голоднов
Об одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл Голоднов
Yandex
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про память
Andrey Akinshin
 
Вечный вопрос измерения времени
Вечный вопрос измерения времениВечный вопрос измерения времени
Вечный вопрос измерения времени
Tatyanazaxarova
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
Mikhail Kurnosov
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Mail.ru Group
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Vsevolod Shabad
 
Low-level C/C++ Optimization by Anrew Axenov (Sphinx)
Low-level C/C++ Optimization by Anrew Axenov (Sphinx)Low-level C/C++ Optimization by Anrew Axenov (Sphinx)
Low-level C/C++ Optimization by Anrew Axenov (Sphinx)Vadim Kosov
 
Низкоуровневая Оптимизация (Андрей Аксенов)
Низкоуровневая Оптимизация (Андрей Аксенов)Низкоуровневая Оптимизация (Андрей Аксенов)
Низкоуровневая Оптимизация (Андрей Аксенов)Ontico
 
Multimaster2
Multimaster2Multimaster2
Multimaster2
Stas Kelvich
 
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
it-people
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
Sergey Platonov
 
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Yandex
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиMUK
 
Aппаратное обеспечения для решения задач механики сыпучих сред
Aппаратное обеспечения для решения задач механики сыпучих средAппаратное обеспечения для решения задач механики сыпучих сред
Aппаратное обеспечения для решения задач механики сыпучих сред
Yury Novozhilov
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slidesrit2010
 
High Load 2009 Dimaa Rus Ready 16 9
High Load 2009 Dimaa Rus Ready 16 9High Load 2009 Dimaa Rus Ready 16 9
High Load 2009 Dimaa Rus Ready 16 9HighLoad2009
 

Similaire à Оптимизация потребления памяти в Java - делаем уборку правильно (20)

G1
G1G1
G1
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
 
Об одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл Голоднов
Об одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл ГолодновОб одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл Голоднов
Об одной неприятной проблеме сборщика Concurrent Mark-Sweep, Кирилл Голоднов
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про память
 
Вечный вопрос измерения времени
Вечный вопрос измерения времениВечный вопрос измерения времени
Вечный вопрос измерения времени
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
 
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктурыОбработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
 
Low-level C/C++ Optimization by Anrew Axenov (Sphinx)
Low-level C/C++ Optimization by Anrew Axenov (Sphinx)Low-level C/C++ Optimization by Anrew Axenov (Sphinx)
Low-level C/C++ Optimization by Anrew Axenov (Sphinx)
 
Низкоуровневая Оптимизация (Андрей Аксенов)
Низкоуровневая Оптимизация (Андрей Аксенов)Низкоуровневая Оптимизация (Андрей Аксенов)
Низкоуровневая Оптимизация (Андрей Аксенов)
 
Cpp
CppCpp
Cpp
 
Multimaster2
Multimaster2Multimaster2
Multimaster2
 
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
 
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
 
User Aggs In As
User Aggs In AsUser Aggs In As
User Aggs In As
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сети
 
Aппаратное обеспечения для решения задач механики сыпучих сред
Aппаратное обеспечения для решения задач механики сыпучих средAппаратное обеспечения для решения задач механики сыпучих сред
Aппаратное обеспечения для решения задач механики сыпучих сред
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slides
 
High Load 2009 Dimaa Rus Ready 16 9
High Load 2009 Dimaa Rus Ready 16 9High Load 2009 Dimaa Rus Ready 16 9
High Load 2009 Dimaa Rus Ready 16 9
 

Plus de Vitebsk DSC

Community-Z
Community-ZCommunity-Z
Community-Z
Vitebsk DSC
 
How to exceed Customer's expectations by delivery complicated ML+RPA project
How to exceed Customer's expectations by delivery complicated ML+RPA projectHow to exceed Customer's expectations by delivery complicated ML+RPA project
How to exceed Customer's expectations by delivery complicated ML+RPA project
Vitebsk DSC
 
Аджайл майндсет. Что разрушает вашу команду?
Аджайл майндсет. Что разрушает вашу команду?Аджайл майндсет. Что разрушает вашу команду?
Аджайл майндсет. Что разрушает вашу команду?
Vitebsk DSC
 
Микросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudМикросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring Cloud
Vitebsk DSC
 
Тестирование больших данных
Тестирование больших данныхТестирование больших данных
Тестирование больших данных
Vitebsk DSC
 
Amazon SQS или не все костыли одинаково бесполезны
Amazon SQS или не все костыли одинаково бесполезныAmazon SQS или не все костыли одинаково бесполезны
Amazon SQS или не все костыли одинаково бесполезны
Vitebsk DSC
 
Amazon Athena overview
Amazon Athena overviewAmazon Athena overview
Amazon Athena overview
Vitebsk DSC
 
Typical BA Mistakes ​in documentation
Typical BA Mistakes ​in documentationTypical BA Mistakes ​in documentation
Typical BA Mistakes ​in documentation
Vitebsk DSC
 
Boring is Fun!
Boring is Fun!Boring is Fun!
Boring is Fun!
Vitebsk DSC
 
На пути к совершенному инжинирингу
На пути к совершенному инжинирингуНа пути к совершенному инжинирингу
На пути к совершенному инжинирингу
Vitebsk DSC
 
Чего же ты хочешь, человек?
Чего же ты хочешь, человек?Чего же ты хочешь, человек?
Чего же ты хочешь, человек?
Vitebsk DSC
 
Растем вместе с eKIDS
Растем вместе с eKIDSРастем вместе с eKIDS
Растем вместе с eKIDS
Vitebsk DSC
 
Технологии беспилотных автомобилей
Технологии беспилотных автомобилейТехнологии беспилотных автомобилей
Технологии беспилотных автомобилей
Vitebsk DSC
 
Управляем эволюцией на лету
Управляем эволюцией на летуУправляем эволюцией на лету
Управляем эволюцией на лету
Vitebsk DSC
 
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчейВыбираем стратегию создания бранчей
Выбираем стратегию создания бранчей
Vitebsk DSC
 
Reactive programming для успеха вашего стартапа
Reactive programming для успеха вашего стартапаReactive programming для успеха вашего стартапа
Reactive programming для успеха вашего стартапа
Vitebsk DSC
 
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java DriverЭкстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Vitebsk DSC
 
Проблемы с производительностью приложений на AngularJS и способы их решения
Проблемы с производительностью приложений на AngularJS и способы их решенияПроблемы с производительностью приложений на AngularJS и способы их решения
Проблемы с производительностью приложений на AngularJS и способы их решения
Vitebsk DSC
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практике
Vitebsk DSC
 

Plus de Vitebsk DSC (19)

Community-Z
Community-ZCommunity-Z
Community-Z
 
How to exceed Customer's expectations by delivery complicated ML+RPA project
How to exceed Customer's expectations by delivery complicated ML+RPA projectHow to exceed Customer's expectations by delivery complicated ML+RPA project
How to exceed Customer's expectations by delivery complicated ML+RPA project
 
Аджайл майндсет. Что разрушает вашу команду?
Аджайл майндсет. Что разрушает вашу команду?Аджайл майндсет. Что разрушает вашу команду?
Аджайл майндсет. Что разрушает вашу команду?
 
Микросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring CloudМикросервисы со Spring Boot & Spring Cloud
Микросервисы со Spring Boot & Spring Cloud
 
Тестирование больших данных
Тестирование больших данныхТестирование больших данных
Тестирование больших данных
 
Amazon SQS или не все костыли одинаково бесполезны
Amazon SQS или не все костыли одинаково бесполезныAmazon SQS или не все костыли одинаково бесполезны
Amazon SQS или не все костыли одинаково бесполезны
 
Amazon Athena overview
Amazon Athena overviewAmazon Athena overview
Amazon Athena overview
 
Typical BA Mistakes ​in documentation
Typical BA Mistakes ​in documentationTypical BA Mistakes ​in documentation
Typical BA Mistakes ​in documentation
 
Boring is Fun!
Boring is Fun!Boring is Fun!
Boring is Fun!
 
На пути к совершенному инжинирингу
На пути к совершенному инжинирингуНа пути к совершенному инжинирингу
На пути к совершенному инжинирингу
 
Чего же ты хочешь, человек?
Чего же ты хочешь, человек?Чего же ты хочешь, человек?
Чего же ты хочешь, человек?
 
Растем вместе с eKIDS
Растем вместе с eKIDSРастем вместе с eKIDS
Растем вместе с eKIDS
 
Технологии беспилотных автомобилей
Технологии беспилотных автомобилейТехнологии беспилотных автомобилей
Технологии беспилотных автомобилей
 
Управляем эволюцией на лету
Управляем эволюцией на летуУправляем эволюцией на лету
Управляем эволюцией на лету
 
Выбираем стратегию создания бранчей
Выбираем стратегию создания бранчейВыбираем стратегию создания бранчей
Выбираем стратегию создания бранчей
 
Reactive programming для успеха вашего стартапа
Reactive programming для успеха вашего стартапаReactive programming для успеха вашего стартапа
Reactive programming для успеха вашего стартапа
 
Экстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java DriverЭкстремальная оптимизация производительности на примере MongoDB Java Driver
Экстремальная оптимизация производительности на примере MongoDB Java Driver
 
Проблемы с производительностью приложений на AngularJS и способы их решения
Проблемы с производительностью приложений на AngularJS и способы их решенияПроблемы с производительностью приложений на AngularJS и способы их решения
Проблемы с производительностью приложений на AngularJS и способы их решения
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практике
 

Оптимизация потребления памяти в Java - делаем уборку правильно