http://www.awprofessional.com/articles/printerfriendly.asp?p=486104&rl=1
C, как писали авторы Керниган и Ритчи, не является языком высокого уровня. За прошедшие со времени создания C 30 лет он утратил свое преимущество в виде написания программ в виде инструкций, близких к машинным. В статье приводятся примеры исследований, проводившихся около 2000 года с рекомпилятором Dynamo, и показавших, что компиляция-во-время-выполнения может давать код на 10-20% более эффективный по скорости, чем статическая компиляция. Причина в том, что виртуальные машины могут применять определенные оптимизирующие методики, недоступные статическим компиляторам.
Компиляторы C также физически не могут инлайнить функции, описанные в другом файле, а между тем затраты на вызов функции на многих архитектурах процессоров очень высоки и для коротких методов порой время потраченное на вызов функции оказывается больше, чем проведенное в теле самой функции. ЯВУ же могут инлайнить такие вызовы в рантайме.
Поэтому программы на таких языках высокого уровня, выполняющихся в виртуальной машине, как Java, в эпоху современных процессоров могут вполне соперничать по скорости с программами на C.