2009-10-07 2 views
1

Есть ли способ контролировать уровень оптимизации java-компилятора, который использует Eclipse при создании проекта? Или этот вопрос уже не имеет значения, все ли оптимизация отложена до vm?Управление параметрами компилятора в Eclipse

Причина, почему я спрашиваю, что я недавно написал быстрый тест делает это:

private static int test_f(int i) { return i * 42; } 

... 

int z = 41; 
for(int i = 0; i < 10000; ++i) { z = z*42; }   // this loop runs in X seconds 
for(int i = 0; i < 10000; ++i) { z = test_f(z); } // this loop runs in 10*X seconds 

Результаты этого испытания imples test_f() не быть встраиваемыми, несмотря на то, что на самом деле является главным кандидат на него. Это также должно быть возможно сделать во время компиляции.

Окружающая среда/цель vm - это Android/Dalvik.

ОБНОВЛЕНИЕ: Я исследовал это дальше, и оказывается, что Dalvik не делает вложения в эту дату.

ответ

2

Да, оптимизация в основном выполняется JIT в наши дни для настольных Java, поэтому компиляторы не делают такие вещи, как inlining. -O даже не указан в качестве опции в javac в эти дни (хотя он не нарушает компиляцию, я подозреваю, что это не имеет значения).

Не забывайте, что у Dalvik нет есть a JIT.

Смежные вопросы