Почему быстрое создание объектов в Scala? - PullRequest
6 голосов
/ 08 марта 2011

Из этого сравнения библиотек сериализации на JVM, похоже, что быстрее создать объект в Scala, чем в Java. Однако разница в наносекундах.

Есть ли какая-либо реальная причина, по которой создание объекта в Scala займет меньше времени, или график просто отражает неправильный сравнительный анализ или какую-то другую неточность?

Ответы [ 3 ]

6 голосов
/ 09 марта 2011

40 наносекундной разницы во времени создания объекта - это фоновый шум в Intel Core i7 920.

Если предположить, что числа в среднем за несколько прогонов, 40 наносекунд - это всего лишь 0,04 микросекунды. Если предположить, что в 64-разрядной версии Windows 7 высокопроизводительные часы работали правильно, вы, вероятно, наблюдаете икоты в окнах, фазу луны, статистическую ошибку, ошибку программы измерения, скорости реализации выделения памяти или что-то еще полностью.

1 голос
/ 09 марта 2011

Scala создает больше маленьких объектов автоматически.Это делает создание объекта быстрее в среднем , но размер сериализации больше.

0 голосов
/ 05 марта 2014

Обновление этого более старого сообщения:

Страница переместилась,

https://github.com/eishay/jvm-serializers/wiki

Scala в данный момент отсутствует в списке.Поиск в группе не объяснил почему?

Старый пост, но аргументы продолжались,

Scala быстрее, чем Java, пока ...

I думаю пост Рекса Керра относится к тому, как классы коллекции Scala сохраняют свои элементы индивидуально.У меня нет эталонных тестов, но это немного (трудно доказать и нерентабельно) быстрее, я отметил, как многократно быстрее.Предположительно, кодировщики Scala знают это.

См. Код для методов readObject / writeObject в коллекции ImmutableList коллекции Scala,

Кодовая страница для списка неизменных

loop, loop ...

Беглый взгляд на код теста,

код теста для Scala

показывает использование JavaConversions._что, учитывая текущие изменения и с учетом вышесказанного, могло дать / дать Scala небольшое преимущество.

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