Принято XX: значения UseSSE для Java JVM?

Я хотел бы сравнить производительность приложения в нескольких версиях SSE и не смог найти значения, которые принимаются этим флагом JVM. Я тестирую 0, 1, 3 и 4. Я больше всего не уверен, принято ли 4 (все примеры, которые я видел, до 3) и/или если это вариации (4.1-4.3) могут быть явно определены. У кого-нибудь есть дополнительная информация об этом?

2 ответов


использовать источник ;)

http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/39d920531a4d/src/cpu/x86/vm/vm_version_x86.cpp#l464

if (UseSSE < 4) {
  _cpuFeatures &= ~CPU_SSE4_1;
  _cpuFeatures &= ~CPU_SSE4_2;
}

if (UseSSE < 3) {
  _cpuFeatures &= ~CPU_SSE3;
  _cpuFeatures &= ~CPU_SSSE3;
  _cpuFeatures &= ~CPU_SSE4A;
}

if (UseSSE < 2)
  _cpuFeatures &= ~CPU_SSE2;

if (UseSSE < 1)
  _cpuFeatures &= ~CPU_SSE;

обратите внимание, что доказывает, что JVM в некоторой степени осведомлен о SSE, он может не генерировать действительно эффективные коды для более новых версий. Ваш пробег может отличаться.


проверьте это: http://stas-blogspot.blogspot.gr/2011/07/most-complete-list-of-xx-options-for.html

Он имеет наиболее полную документацию для параметров XX JVM (тоже немного устарел). Для XX: UseSSE он говорит до 2.