Цитата:
|
Во-вторых, JIT компиляция точно так же переводит в нативный бинарный
|
Как бы никто и не спорит. Только JIT это делает во время работы программы, а не сразу + есть много способов в JS отменить работу JIT в рамках функции - например использовать eval.
Цитата:
|
Нет никакого смысла каждую итерацию цикла чтото там опять компилировать, интерпретировать
|
Обычно используется перевод кода в байткод, а затем JIT уже в машинный, но это уже каждая VM по своему, например V8 сразу генерит машинный код, т.е. их получается 2 - оптимизированный и нет.
Цитата:
|
Единственная причина почему может быть медленнее, это если компилятор хуже.
|
Конечно нет, JS очень динамичный язык из из-за кучи перестраховок падает производительность.
С++ это как правило тупо компиляция в машинный код и распространение уже скомпиленной программы.
JIT - компиляция во время исполнения программы (параллельно с работой программы);
AOT - компиляция перед непосредственным запуском.
***
А вообще, как бы перед тем как строить теории, догадки и т.д. нужно как минимум провести тесты и определить через профилирование на что тратится время и работает ли JIT.
В отладчике ФФ или Хрома всё нужное есть. Также тут можно прочитать про тестирование
http://habrahabr.ru/company/mailru/blog/273839/