Совсем недавно, дорогая Лэни написал замечательный пост об изменяемых числах в Java: http://habrahabr.ru/post/151887/ В комментарии к его посту я упомянул, что если важна производительность, то можно заменить объект-обертку одноэлементным массивом; доступ к элементу массива по определению происходит быстрее, чем получение значения из поля экземпляра.
Я унаследовал этот стереотип от Сана после прочтения еще одного официального документа о производительности.
Там было написано, что самый быстрый доступ — к локальной переменной, за ней следует статическое поле, затем элемент массива и поле экземпляра замыкает этот список.
К счастью, мне на слово не поверили и это стало причиной написания данной статьи.
Статья не предназначена для юниоров; читатель должен знать Java, ASM x86 и байт-код. Чтобы понять, будет ли доступ к элементу массива более быстрым по сравнению с доступом к полю объекта, вы можете:
- Написать синтетический тест производительности
- Поймите, что на самом деле стоит за array[0] и this.value
Сначала давайте создадим тестовый класс.
Теги: #hotspot #производительность #javapackage numbers; public class TestNumbers {
-
Ленц, Эмилий Христианович
19 Oct, 24 -
Воздушный Поток, Подвинься
19 Oct, 24 -
Автоматизация Офисного Освещения
19 Oct, 24 -
Как Я Делал Hot-Spot Через Virtual Box
19 Oct, 24 -
От Commodore До Ipad
19 Oct, 24