Pull to refresh
4
Karma
0
Rating
Сергей Куксенко @Walrus

User

Анализ доклада Сергея Куксенко с JPoint 2016

> из-за 4K-алиасинга с точки зрения кэша

Небольшой коммент: кэш ничего не знает про 4K-aliasing.
Это проблема store buffer'а

Анализ доклада Сергея Куксенко с JPoint 2016

> Условно, перед проверкой на перекрытие данных, адресам делается & 0xFFF, и потом смотрится, есть ли их перекрытие. Так?

Так.

> Мне, логика подсказывает, что при этом объяснении просадка производительности должна быть когда копируешь между адресами кратными 4к, но судя по таблице — это самый лучший случай по производительности. Странно это.

4k-aliasing, не позволяет делать load пока не завершится store (в случае конфликта). То есть нас интересует load, который идет после store.
Если дельта == 4K. то все хорошо ибо:
1) load *+4K
2) store *+4K
3) load *+4K+32
4) store *+4K+32

Тут нет конфликтов по 4K-aliasing

Если дельта == 4K+1(2,15,16). то:
1) load *+4K
2) store *+4K+1
3) load *+4K+32
4) store *+4K+1+32

то у операций 2 и 3 адреса (в младших 12 битах) перекрываются. И значит load номер 3 ждет пока значение store номер 2 уедет из store buffer.

Как вы можете сделать Java лучше

«Я, если честно, так и не разбирался с тем, как правильно собрать OpenJDK с нуля»
Скачал. потом
sh ./configure
make images
всё

Анонс Java-конференции JPoint 2016

Присылай как будет готово. ;) Любопытно.

Самая медленная инструкция x86

А вот вопрос, зачем ты в последнем примере делаешь цикл на 8К? ;)
Сдается мне, что тут ты сгущаешь краски ;)

Самая медленная инструкция x86

Ну еще совсем простой пример. David Dice рассказывал про случай, когда просто доступ к чужой NUMA пямяти на 8-сокетной системе (за 2 хопа) занимал > 1000 тактов.

Самая медленная инструкция x86

У меня были примеры с денормалами. И если на SB & YB они нормально тормозили, то на haswell все стало быстро как с нормальными числами.

Джокер поднимает ставки

Кстати, а чего это Дюк в дамы записан? ;)

Время против памяти на примере хеш-таблиц на Java

да, на хасвелле тоже есть. ;)
Ну и да — на памяти можно выиграть гораздо больше.

Время против памяти на примере хеш-таблиц на Java

Тогда можно поймать «division trolling effect» :)
www.youtube.com/watch?v=RGFJjQKChNQ примерно с 50 по 65 минуты ;)

Время против памяти на примере хеш-таблиц на Java

По первому куску вопросов нет.
А во втором — длина таблицы не выводится до степени двойки? Чтобы избавится от '%'.

Время против памяти на примере хеш-таблиц на Java

Интересует выражение — путь от хэшкода до индекса ;)

Время против памяти на примере хеш-таблиц на Java

Это то я понял. В генераторах лень разбираться. ;) Билдить тоже. Кинь сюда сгенерированный код для метода get() из мапы ;)

Время против памяти на примере хеш-таблиц на Java

где можно точно посмотреть сорцы hftc мапы? качать лень, на гитхабе черт ногу сломит ;)

Видеообзор ультрабука Lenovo ThinkPad X1 Carbon (2014)

Раздумывал как-то не прикупить ли себе. Увидел клавиатуру — нафиг!

JSR 133 (Java Memory Model) FAQ (перевод)

Мы тут JSR133 обсуждаем.
Но и в C++0x11 все работает (если правильно написать).

JSR 133 (Java Memory Model) FAQ (перевод)

Во первых double check работает — вы просто не умеете его готовить.
А во вторых, да некий аналог на синхронизацию первого доступа есть. Но после того как класс инициализирован — он нам не нужен и его больше нет. Так что ничего медленного, никаких оверхедов. Java это managed runtime — что хотим, то и делаем (в пределах спеки).

JSR 133 (Java Memory Model) FAQ (перевод)

Означаетли это что статические поля инициализируются до старта main функции?

Нет.

В противном случае, когда вызывается инициализация этих полей,

При первом обращении к классу.

и как удовлетворяется условие что это будет сделано перед первым чтение и только единожды?

Automagically

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity