В теории, идеальный jit должен уступать всего на 10% нативу. Но у v8 например очень медленный mem bound checking и нету еще многих оптимизаций для циклов и оптимизаций для 64-битовых целых насколько я смотрел. Они только недавно добавили loop rotation pass. А еще нужен unroll, vectorization, LCSSA, LICM, ScalarEvolution