|
21.05.2018, 06:00 | #1 |
Banned
|
Скорее Ahead-of-Time. Так как думаю это основное отличие JIT в .NET и JIT в Java
которое влияет на кроссплатформенность. И еще мне кажется что это вопрос Сишного высокомерного менталитета к интерпретаторам и скриптам. Потому как не могу понять почему .NET являясь дубляжом Java так налажал с кроссплатформенностью с самого начала. Xamarin кстати хороший пример. Это вопрос что важнее мифическая важность сравнения производительности для конечного пользователя или удобство программирования. Тот же React Native Цитата:
React Native lets you build your app faster. Instead of recompiling, you can reload your app instantly. With Hot Reloading, you can even run new code while retaining your application state. Give it a try - it's a magical experience.
Думаю что там где выбирают Mono, Xamarin выбирают в силу использования того же (.NET) code base. Единственная основная причина. Там где такой причины нет программисты должны быть больные на всю голову. |
|
21.05.2018, 10:18 | #2 |
Участник
|
|
|
21.05.2018, 19:04 | #3 |
Banned
|
Если брать Андроиды то да.
А если брать контекст дискуссии особенностей компиляторов в .NET и Java, то нет. В разном контексте ширина толкования JIT компиляции - разная. Цитата:
JIT compilation is a combination of the two traditional approaches to translation to machine code – ahead-of-time compilation (AOT), and interpretation – and combines some advantages and drawbacks of both.
Стратегия компиляции .NET (не уверен насчет NET.Core) это AOT. Хотя по ходу этот термин может означать как минимут два подхода. Ngen.exe as Pre-JIT и собственно внутренняя реализация JIT. Цитата:
CLR design mandates that the JIT happens before the relevant code executes,
JVM's in contrast would be free to interpret the code for a while while a separate thread creates a machine code representation. Цитата:
the CLR compiles all of the machine code once when it’s called at runtime
При этом процесс компиляции CLR называют JIT компиляцией. Но момент этой компиляции и необходимость ее перед запуском это AOT. В отличие от интерпретации. То есть AOT снаружи JIT и есть AOT внутри JIT. Цитата:
The Common Language Runtime (CLR), the virtual machine component of Microsoft's .NET framework, manages the execution of .NET programs. A process known as just-in-time compilation converts compiled code into machine instructions which the computer's CPU then executes.
Последний раз редактировалось ax_mct; 21.05.2018 в 19:11. |
|