История изменений
Исправление
vertexua,
(текущая версия)
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека на каждый чих. Потому это нужно компилировать, чтобы компилятор вытер абстракции. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости Java, SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Получаем отличный результат, можем запинать интерпретируемый динамически типизируемый Python на бенчмарке. Но конечно не .NET Core работающий так же, https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/java-csharpcore.html, на большинстве
Исправление
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека на каждый чих. Потому это нужно компилировать, чтобы компилятор вытер абстракции. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости Java, SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Получаем отличный результат, можем запинать интерпретируемый динамически типизируемый Python на бенчмарке. Но конечно не .NET Core https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/java-csharpcore.html, на большинстве
Исправление
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека на каждый чих. Потому это нужно компилировать, чтобы компилятор вытер абстракции. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости Java, SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Получаем отличный результат, можем запинать интерпретируемый динамически типизируемый Python на бенчмарке
Исправление
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека на каждый чих. Потому это нужно компилировать, чтобы компилятор вытер абстракции. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости Java, SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Исправление
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека на каждый чих. Потому это нужно компилировать, чтобы компилятор вытер абстракции. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Исправление
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека на каждый чих. Потому это нужно компилировать. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Исправление
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо постоянно опускаться и подыматься на 100 пунктов стека. Потому это нужно компилировать. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.
Исходная версия
vertexua,
:
JIT-компиляция, это когда программа сначала тормозит и жрет как интерпретируемая, потом жрет еще больше на JIT компилятор в узких местах, а потом тормозит на переходах между интерпретируемых и машинных местах.
Но иногда JIT необходим, например в случае с Java. С одной стороны стандартная библиотека настолько раздута, что интерпретировать это нельзя - будет плохо. Потому это нужно компилировать. Но компилировать заранее в натив тоже нельзя, ведь из-за раздутости SubstrateVM на Hello World работает 90 секунд. 90 секунд Карл!
Значит они все сделали правильно при условии такой раздутости - решили компилировать только узкие места, чтобы одновременно не тратить все 90 секунд, а то и больше, но одновременно не париться о произвоительности не сильно горячего кода.