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

Preview:

DESCRIPTION

@ J1 2012 Moscow

Citation preview

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

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

reserved.

Insert Informaion Protection Policy Classification from Slide 7

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

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

Oracle Corporation

vladimir.x.ivanov@oracle.com

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к вызовов

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

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

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

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

reserved.

Insert Informaion Protection Policy Classification from Slide 7

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

Цели

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

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

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

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

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

reserved.

Insert Informaion Protection Policy Classification from Slide 7

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

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

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

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

C2

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

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-значения

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

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Эргономика

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

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

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

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

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

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

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

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

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

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

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

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 …

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

reserved.

Insert Informaion Protection Policy Classification from Slide 7

Q&A

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

Recommended