Микро-тест, сравнивающий изменчивые, неизменяемые коллекции Scala с коллекциями java.util.concurrent. * - PullRequest
5 голосов
/ 27 сентября 2011

Существуют ли опубликованные микро-тесты, в которых сравниваются изменяемые и неизменяемые коллекции Scala друг с другом и коллекциями в java.util.concurrent в многопоточных средах?Меня особенно интересуют случаи, когда читатели намного превосходят число авторов, например, кэширование HashMaps в коде на стороне сервера.

Микро-тесты коллекций Clojure также были бы приемлемы, поскольку их алгоритмы аналогичны алгоритмам, используемым в Scala.2.8 постоянных коллекций.

Я напишу свои собственные, если еще ничего не сделано, но написание хороших микропроцессоров не тривиально.

Ответы [ 3 ]

2 голосов
/ 28 сентября 2011

Здесь приведены некоторые результаты сравнения хеш-карт Java, хеш-карт Scala, параллельных хеш-карт Java, параллельных списков пропусков Java, параллельных массивов Java и параллельных коллекций Scala (в конце технического отчета):

http://infoscience.epfl.ch/record/165523/files/techrep.pdf

Здесь приведено более подробное сравнение списков одновременных пропусков и параллельных хэш-карт Java (также в конце основной части отчета перед добавлением):

http://infoscience.epfl.ch/record/166908/files/ctries-techreport.pdf

Эти микро тесты ориентированы на тестирование производительности одной операции.Если вы планируете написать свои собственные тесты, это, вероятно, будет полезно:

http://buytaert.net/files/oopsla07-georges.pdf

1 голос
/ 14 октября 2016

Li Haoyi's Benchmarking Scala Collections - это подробное и всестороннее исследование, которое отвечает вашему запросу.Здесь слишком долго цитировать.

0 голосов
/ 27 сентября 2011

Почему бы вам тогда не попробовать использовать java.util.concurrent.ConcurrentHashMap? таким образом, вам не нужно синхронизировать, и ваш миллион операций чтения будет намного быстрее (равно как и запись).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...