[ON] В Google провели сравнение производительности C++, Java, Go и Scala

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6000
ОС: gnu/linux

[ON] В Google провели сравнение производительности C++, Java, Go и Scala

Сообщение rssbot »


Роберт Хандт (Robert Hundt) из компании Google опубликовал отчет с результатами тестирования качества оптимизации циклов в реализациях языков C++, Java, Go и Scala. Как и ожидалось, в тестах производительности и потребления памяти лидирует C++, но в отчете отмечается, что достижение высоких показателей связано с необходимостью проведения дополнительных оптимизаций, которые требуют дополнительной квалификации и зачастую не используются программистами среднего уровня. Java отмечен как язык, наиболее простой для реализации кода, но с другой стороны труднопредсказуемый в плане анализа производительности - использование Java VM и сборщика мусора значительно затрудняет тюнинг производительности. Оценка числа строк кода, потребовавшихся для реализации поставленной задачи (в списке указан размер, относительно кода на языке Scala. Признаком Pro отмечены результаты оценки варианта кода после дополнительного тюнинга и использования специфичных для языка конструкций). Наиболее компактным языком оказался Scala - для решения задачи потребовалось 658 строк.
1.3x C++ Dbg/Opt (850 строк
1.6x Java 1068 строк
1.9x Java Pro 1240 строк
1.0x Scala 658 строк
0.5x Scala Pro 297 строк
1.4x Go 902 строки
1.2x Go Pro 786 строк
Размер результирующих бинарных файлов, после сборки (показатели, относительно размера сгенерированного JAR-архива). Java и Scala работают поверх Java VM и генерируют байт код, а C++ и Go - готовые к исполнению машинные инструкции. Наиболее компактный результирующий файл получился у Java - 13 Кб, у языка Go бинарный файл занял 1.2 Мб, а оптимизированный вариант на C++ - 41 Кб.
45x C++ Dbg 592892 байт
3.1x C++ Opt 41507 байт
1.0x Java 13215 байт
1.6x Java Pro 21047 байт
3.6x Scala 48183 байт
2.8x Scala Pro 36863 байт
94x Go 1249101 байт
92x Go Pro 1212100 байт
Потребление памяти (показатели, относительно реализации на языке C++). Для работы кода на Java и Scala потребовалось в 6 раз больше памяти, чем на языке Cи. Наибольшую прожорливость проявил язык Go.
1x C++ Opt virt 184 Мбreal 163 Мб
2.6x C++ Dbg virt 474 Мбreal 452 Мб
6x Java virt 1109 Мбreal 617 Мб
6x Scala virt 1111 Мбreal 293 Мб
90x Go virt 16.2 Гбreal 501 Мб
Время компиляции (показатели, относительно языка Go, который отличился высокой скоростью компиляции).
6.5x C++ Dbg 3.9 сек
5.0x C++ Opt 3.0 сек
5.2x Java 3.1 сек
5.0x Java Pro 3.0 сек
23.1x Scala scalac 13.9 сек
6.3x Scala fsc 3.8 сек
18.8x Scala Pro scalac 11.3 сек
5.8x Scala Pro fsc 3.5 сек
2.0x Go 1.2 сек
1.0x Go Pro 0.6 сек
Производительность (показатели, относительно оптимизированного варианта на С++).
1.0x C++ Opt 23 сек
8.6x C++ Dbg 197 сек
5.8x Java 64-bit 34 сек
12.6x Java 32-bit 290 сек
4.6x Java 32-bit GC 106 сек
3.7x Java 32-bit SPEC GC 89 сек
3.6x Scala 82 сек
2.9x Scala low-level 67 сек
2.5x Scala low-level GC 58 сек
7.0x Go 6g 161 сек
5.5x Go Pro 126 сек



Источник: http://www.opennet.ru/opennews/art.shtml?num=30784


оригинал на opennet.ru
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: [ON] В Google провели сравнение производительности C++, Java, Go и Scala

Сообщение Denjs »

холивар!холивар!гугль знает! (как толсто троллить) :happy:
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: [ON] В Google провели сравнение производительности C++, Java, Go и Scala

Сообщение Crazy »

Жаль, что не участвовал Erlang

Desipere in loco
Спасибо сказали:
Slimy
Сообщения: 1689
ОС: openSuSE 11.2 GM (GеMор едишн)

Re: [ON] В Google провели сравнение производительности C++, Java, Go и Scala

Сообщение Slimy »

Denjs писал(а):
05.06.2011 14:28
холивар!холивар!гугль знает! (как толсто троллить) :happy:

А что же тут холиварного? Вполне очевидно выигрываем в одном проигрываем в другом. Вот единственно загадочно как scala умудрился разогнаться в jvm так что с++ обскакал. На хабре было недовольсто какраз по поводу того что на jvm другие реализации языков работают совсем не быстро.
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: [ON] В Google провели сравнение производительности C++, Java, Go и Scala

Сообщение Crazy »

Slimy писал(а):
05.06.2011 18:01
Вот единственно загадочно как scala умудрился разогнаться в jvm так что с++ обскакал.

"Поднимите мне веки" Не вижу, что бы обскакивала.

Desipere in loco
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: [ON] В Google провели сравнение производительности C++, Java, Go и Scala

Сообщение frp »

Slimy писал(а):
05.06.2011 18:01
Вот единственно загадочно как scala умудрился разогнаться в jvm так что с++ обскакал.

Где?
Спасибо сказали: