http://mail.openjdk.java.net/pipermail/closures-dev/2009-November/000342.html
Последний абзац:
I really,... про STM что-ли :)
really don't want to do is release an overhyped
facility for parallel programming that doesn't
actually speed up anyone's applications.
Диалог прошел тут - http://rsdn.ru/forum/java/3617915.aspx.
ОтветитьУдалить-----
http://rsdn.ru/forum/java/3622818.aspx:
Похоже на STM.
Я только вот такого не пойму
" So you not only get a lot more cache misses (which are increasingly very expensive ) but you also have cacheline ping-ponging due to different data items being operated on by different threads just so happening to be nearby."
"more cache misses" — согласен дополнительный уровень indirection этому способствует.
но
"cacheline ping-ponging" == "false sharing" ???
в чем сомнения
1) кэш-линия — это отображение непрерывной области памяти
2) выделение памяти зачастую происходит из специального пула памяти потока (тоже непрерывный кусок)
т.е. если поток сам себе выделяет память — то ложное разделение должно быть крайне редким. Актуально если выделяет один поток объекты(master), а потом раздает их другим (slaves). В таком случае слэйвы будут делить кэшлинии и причем постоянно.
Но в реализациях STM зачастую нет мастер-потока, т.е. выделение системных объектов либы происходит в потоке юзера. И как бы, ложное разделение должно быть крайне не частым.
http://rsdn.ru/forum/java/3624855.aspx:
Насколько я понял, все его предыдущие рассуждения, в т.ч. и про ping-ponging, не относились к STM.