Многоуровневая компиляция в hotspot jvm

19
1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Informaion Protection Policy Classification from Slide 7 India 3 4 May 2012 San Francisco September 30 October 4, 2012

Upload: vladimir-ivanov

Post on 22-Jun-2015

977 views

Category:

Technology


2 download

DESCRIPTION

@ J1 2012 Moscow

TRANSCRIPT

Page 1: Многоуровневая компиляция в HotSpot JVM

1 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

India 3–4 May 2012

San Francisco September 30–October 4, 2012

Page 2: Многоуровневая компиляция в HotSpot JVM

2 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Многоуровневая компиляция в HotSpot JVM

Владимир Иванов

Oracle Corporation

[email protected]

Page 3: Многоуровневая компиляция в HotSpot JVM

3 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

JIT-компиляторы в HotSpot JVM

• Client / C1

• java -client …

• быстро генерирует приемлемый машинный код

• Базовые оптимизации

• Не требуется профиль исполнения кода

• Порог компиляции: 1.5к вызовов

• Server / C2

• java -server …

• Генерирует максимально быстрый код

• Большое количество агрессивных оптимистичных

оптимизаций

• Порог компиляции: 10к вызовов

Page 4: Многоуровневая компиляция в HotSpot JVM

4 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

JIT-компиляторы в HotSpot JVM Сильные и слабые стороны

• Client / C1

“+” Быстрый старт приложения

“-” Страдает пиковая производительность

• Server / C2

“+” Быстрый код для «горячих» методов

“-” Требуется долгий «разогрев» приложения

Page 5: Многоуровневая компиляция в HotSpot JVM

5 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Многоуровневая компиляци

Цели

• Взять лучшее от 2 компиляторов

• Производительность кода серверного компилятора

• Скорость запуска, как с клиентским компилятором

• Автоматическая настройка

Page 6: Многоуровневая компиляция в HotSpot JVM

6 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Сценарий работы

• Начать исполнение в интерпретаторе

• Быстро создать версию C1 для профилирования

• На основе собранной информации скомпилировать

C2

Page 7: Многоуровневая компиляция в HotSpot JVM

7 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Уровни компиляции

• 5 уровней

• #0: интерпретатор

• профилирование по необходимости

• #1: C1 без профилирования

• #2: С1 с базовым профилированием

• Invocation & backedge counters

• #3: С1 с полным профилированием

• Invocation & backedge counters + MDO

• На 30% медленнее #2

• #4: C2

Page 8: Многоуровневая компиляция в HotSpot JVM

8 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Профилирование

• Сбор информации о деталях исполнения метода

• Требуется C2 для ряда оптимизаций

• Профилирование происходит на уровнях #0 и #3

• Что интересует

• Ветвления

• Вызовы виртуальных методов

• Проверки типов

• сheckcast, instanceof, aastore

• null-значения

Page 9: Многоуровневая компиляция в HotSpot JVM

9 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Эргономика

• Порог на изменение уровня зависит от длины

очереди на компиляцию

• Учитывается очередь и С1, и С2

• Приоритизация методов в очереди

Page 10: Многоуровневая компиляция в HotSpot JVM

10 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Уровни компиляции

0

3

2 1

4

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 11: Многоуровневая компиляция в HotSpot JVM

11 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Стандартный сценарий

0

3

2 1

4

0 → 3 → 4

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 12: Многоуровневая компиляция в HotSpot JVM

12 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Компиляция простого метода

0

3

2 1

4

0 → (2,3) → 1

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 13: Многоуровневая компиляция в HotSpot JVM

13 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Очередь на компиляцию С1 переполнена

0

3

2 1

4

0 → (3 → 2) → 4

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 14: Многоуровневая компиляция в HotSpot JVM

14 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Очередь на компиляцию C2 переполнена

0

3

2 1

4

0 → 2 → 3 → 4

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 15: Многоуровневая компиляция в HotSpot JVM

15 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Метод не может быть скомпилирован C1

0

3

2 1

4

0 → 4

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 16: Многоуровневая компиляция в HotSpot JVM

16 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Деоптимизация

0

3

2 1

4

(1,2,3,4) → 0

0: интерпретатор

1: C1 w/o profiling

2: С1 + basic profiling

3: С1 + full profiling

4: C2

Page 17: Многоуровневая компиляция в HotSpot JVM

17 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Использование

• -XX:+TieredCompilation

• В скором будущем режим по-умолчанию

– $ java -server …

– $ java -client …

Page 18: Многоуровневая компиляция в HotSpot JVM

18 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Q&A

Page 19: Многоуровневая компиляция в HotSpot JVM

19 Copyright © 2012, Oracle and/or its affiliates. All rights

reserved.

Insert Informaion Protection Policy Classification from Slide 7

India 3–4 May 2012

San Francisco September 30–October 4, 2012