Как Java VM справляется с выравниванием строк кэша и памяти в контекстах MT? - PullRequest
3 голосов
/ 28 мая 2011

По предмету, если в C / C ++ легко найти размер строки кэша и решить эту проблему при разработке эффективного кода MT, как Java VM справится с этим?

Приветствия

Ответы [ 2 ]

3 голосов
/ 28 мая 2011

Обычно это не так.Вы должны решить это для себя.Если это действительно важно, вам, возможно, придется использовать JNI, чтобы получить низкоуровневую информацию о системе.

Java, с другой стороны, облегчает написание приложения MT, поддерживая его на языке с самого начала.

2 голосов
/ 25 июня 2013

Существует очень хороший шанс, что Java начнет работать с этим начиная с Java 8. JEP 142 сообщает:

Конфликт памяти возникает, когда две области памяти, которыепри использовании двумя разными ядрами одна и та же строка кэша и по крайней мере одно из ядер выполняет запись.Для сильно загруженных областей памяти это может быть серьезной проблемой производительности и масштабируемости.Цель этого улучшения - избежать конфликта памяти между ядрами, по крайней мере, в тех областях, которые мы можем легко идентифицировать во время разработки..

...