Smart JVM и JIT Micro-оптимизации - PullRequest
6 голосов
/ 17 июля 2009

Со временем JVM и JIT от Sun стали довольно умными. Вещи, которые раньше были общеизвестны как необходимая микрооптимизация, больше не нужны, потому что об этом позаботятся за вас.

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

Какие еще интеллектуальные микрооптимизации JVM или JIT делает для вас?

РЕДАКТИРОВАТЬ : я сделал это вики сообщества; Я хотел бы собрать их со временем.

Ответы [ 3 ]

6 голосов
/ 17 июля 2009

Это впечатляет. Все это то, что вы can't делаете в C ++ (конечно, в той же степени, что и в Java). Имейте в виду, что ранние версии Java начали «медленную» репутацию, не имея этих вещей, и мы продолжаем улучшать значительно со временем. Это все еще большая область исследований.

4 голосов
/ 28 июля 2009
3 голосов
/ 17 июля 2009

Java умнее во вложении, чем может

  • встроенный код доступен только во время выполнения или даже динамически генерируется.
  • встроенных виртуальных методов (до двух одновременно)
  • выполнить анализ побега встроенных методов и методов, которым они были встроены. (Гораздо сложнее сделать в C ++)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...