On 2015-10-26, Dmitrii Kashin wrote:

>> Сравните:
>>
>>   
>> http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=threadring
>
> Олександр, я дико извиняюсь, но для меня всегда было большой проблемой
> понимание методики тестирования. Ситуация всегда одна и та же: Передо
> мной какой-то тест. Надо понять, в чём его суть, как производилось
> сравнение, что демонстрируют его результаты. Начинаю искать по названию
> теста в поисковике -- и пусто. Ничего толком не понятно.
>
> Вот в данном случае, я поискал по слову thread ring test -- и ничего не
> уяснил для себя. Где мне посмотреть, что это такое-то?
>
> К тому же, мне интересно, что там можно в OCaml сравнивать по части
> тредов. У него ж их нет.

Приведенный сайт - это бывший

  http://shootout.alioth.debian.org/

Навигация на старом была понятней, на новом ощущение что все сломано.

Тут исходные тексты и скрипты тестирования
http://benchmarksgame.alioth.debian.org/play.html

Я не в курсе социальных процесов по проекту, вижу что есть плачь, наример:
http://habrahabr.ru/post/119579/

Историю проекта можно начинать выискивать тут:
http://benchmarksgame.alioth.debian.org/sometimes-people-just-make-up-stuff.html

Как видно проект переходил из рук в руки, принадлежал всегда индивидуалам и
за ним не было сообщества.

Я читал статью на русском сайте Intel Research как они перегнали один из
тестов используя Intel C Compiler используя спец. директивы для того что бы
контекст исполнения не переключался между ядрами, там было еще пару трюков.
Статью не отыщу, за давностью времени они выпала из баз поисковиков, тут
пусто:

  site:intel.ru  shootout.alioth
  site:intel.com  shootout.alioth

В общем про преимущества неизменяемых обьектов для GC посмотрите здесь:

  http://c2.com/cgi/wiki?ImmutableObjectsAndGarbageCollection

Сразу получаем возможность проводить паралельну сборку к основному выполнению,
т.е. нет необходимости вводить блокировки на запись в момент GC. Такие
блокировки будут отодвинуты до момента дефрагментации.

Хотя там как то мало написано, буча вокруг функционального программирования
необосновано раздута, раз так мало написано про преимущества рантайма таких
сред.

Настоящий реализованый пример:
https://wiki.haskell.org/GHC/Memory_Management#Garbage_collection

Понятно что неизменяемость влечет за собой генерацию кучи обьектов и большей
нагрузки на GC и тут еще нужно смотреть что лучше.

-- 
Best regards!

Ответить