Вы найдете интересную выдержку из сообщения в блоге Oracle :
Вопрос : В чем разница между исходным кодом, найденным в репозитории OpenJDK, и кодом, который вы используете для сборки Oracle JDK?
A : Это очень близко - наш процесс сборки для Oracle JDK выпускает сборку на OpenJDK 7, добавив всего лишь пару частей, таких как код развертывания, который включает в себя реализацию Oracle для плагина Java и Java WebStart, а также некоторые третьи с закрытым исходным кодом. сторонние компоненты, такие как графический растеризатор, некоторые сторонние компоненты с открытым исходным кодом, такие как Rhino, и несколько кусочков, вроде дополнительной документации или сторонних шрифтов. В дальнейшем мы намереваемся открыть все компоненты Oracle JDK с открытым исходным кодом, кроме тех, которые мы рассматриваем как коммерческие функции, такие как JRockit Mission Control (пока недоступно в Oracle JDK), и заменить обремененные сторонние компоненты альтернативами с открытым исходным кодом, чтобы добиться более четного паритета. между базами кода.
Поскольку Oracle отвечает за создание обоих, ясно, что у ее клиентов будут веские причины для оплаты, а производительность - очевидное средство.
Я считаю, что OpenJDK является JVM только для интерпретатора. Это проще портировать, так как у него нет специфичного для архитектуры кода сборки, но, к сожалению, он менее производительный.
OracleJDK Я думаю, что использует преимущества платформы ABI с плавающей запятой (Soft Float на RP1 и Hard Float на RP2). В нем также может быть некоторое количество специфичного для платформы кода, чтобы сделать его быстрее.
JIT (точно в срок) компилятор был однажды включен в оба имени акулы, но у меня нет знания, если он включен в OpenJDK. В Википедии OpenJDK не упоминается JIT, и я нашел эту старую и волнующую проблему - компилятор Remove Shark . Тем не менее, история версий Java в Википедии включает JIT.
Если OracleJDK сегодня включает JIT-компилятор для конкретной платформы, а OpenJDK - нет, это вполне может объяснить разницу в производительности,