Джава быстрее плюсов? О_о

808
3
129
Недавно на хабре один обиженный фанат шарпа выложил своё сравнение производительности шарпа с плюсами. Вот оно: http://habrahabr.ru/post/266373/ Чувак делает там сто раз пузырьковую сортировку массива на 10000 элементов.
Я переписал тест на джаву, ожидая увидеть результаты как у шарпа. Вот только...

C++ x64
C-style array bubble sort = 57ms
C++ style array bubble sort = 59ms

C++ vector bubble sort = 61ms

C++ x32
C-style array bubble sort = 56ms
C++ style array bubble sort = 51ms
C++ vector bubble sort = 73ms


С# x64
Array bubble sort: 79ms
List bubble sort: 895ms

C# x32
Array bubble sort: 58ms
List bubble sort: 305ms


Для джавы я сделал четыре варианта теста. Для int[], List<Integer> и двух библиотек на примитивные коллекции (ну кто в здравом уме будет юзать List<Integer> для чего-то, где важна производительность?).

Array bubble sort 47ms
List bubble sort 171ms
Trove list bubble sort 48ms
Colt list bubble sort 55ms
[merge_posts_bbcode]Добавлено: 08.09.2015 14:38:01[/merge_posts_bbcode]

Кстати, можете сами потестить, держите собранные программы. Я запускал на jre 8.хзчто x64
http://rghost.ru/6b8XJznNj
 
У меня:
Код:
 > C++ x64.exe
C-style array bubble sort = 67ms
C++ style array bubble sort = 79ms
C++ vector bubble sort = 76ms

 > C++ x86.exe
C-style array bubble sort = 67ms
C++ style array bubble sort = 76ms
C++ vector bubble sort = 153ms


 > C# x64.exe
C# array bubble sort = 115ms
C# List bubble sort = 1014ms

 > C# x86.exe
C# array bubble sort = 107ms
C# List bubble sort = 629ms


 > Java 7 x64
Array bubble test: 77
List bubble test: 196
Trove list bubble test: 78
Colt list bubble test: 80

 > Java 8 x64
Array bubble test: 74
List bubble test: 178
Trove list bubble test: 70
Colt list bubble test: 78
[merge_posts_bbcode]Добавлено: 08.09.2015 14:54:02[/merge_posts_bbcode]

Код:
 > C++ x64.exe
C-style array bubble sort = 67ms
C++ style array bubble sort = 78ms
C++ vector bubble sort = 76ms

 > C++ x86.exe
C-style array bubble sort = 67ms
C++ style array bubble sort = 76ms
C++ vector bubble sort = 153ms


 > C# x64.exe
C# array bubble sort = 115ms
C# List bubble sort = 1038ms

 > C# x86.exe
C# array bubble sort = 106ms
C# List bubble sort = 627ms


 > Java 7 x64
Array bubble test: 77
List bubble test: 196
Trove list bubble test: 78
Colt list bubble test: 81

 > Java 8 x64
Array bubble test: 75
List bubble test: 178
Trove list bubble test: 71
Colt list bubble test: 78
Примечательно, то что эти программы загружали полностью только одно ядро (у меня 2,4GHz) процессора.

[merge_posts_bbcode]Добавлено: 08.09.2015 23:36:37[/merge_posts_bbcode]

Код:
 > Java 8 32-bit
Array bubble test: 75
List bubble test: 2490
Trove list bubble test: 333
Colt list bubble test: 2148
 
Ничего примечательного, они все однопоточные. И что второй раз с той же скоростью отработали - то же норма, там внутри везде результат 100 тестов усредняется.
 
Лол.
Тут же сотни повторений трех с половиной строчек. Оптимизатор явно повеселился.
 
Назад
Сверху