>А потому что JIT оптимизирует код под конкретный процессор с конкретной величиной
>кеша и набором команд, а не под сферического коня в вакууме
>как делает это Си компилятор. -march и про остальные опции вы, видимо, не слыхали.
>А также JIT например ничего не мешает профилировать методы на лету, инлайнить
>наиболее часто выполняющиеся, а не все и т.п.
Любая профилировка - огромные накладные расходы, так что такую статистику собирать не станут, а заинлайнят согласно статическому анализу - как в С, так и jit.
>JIT может автоматически распараллеливать циклы на многопроцессорных машинах. И отрыв от Си
>все дальше и дальше.
Вообще-то это умеет и gcc, о чем вы снова не слыхали. Что такое openmp, знаете? В 4.4 есть то же самое, но "на лету".
>Зная runtime информацию можно сгенерировать более оптимальный код нежели не зная ее.
Конечно, так вас и допустят профилировать реальные процессы. А тестовый код, да, отпрофайлят на ура, только потом эту информацию никак не подсунуть jit с реальной задачей :)