Информация об изменениях

Сообщение Re[7]: Java vs C# vs C++ от 27.09.2015 13:58

Изменено 27.09.2015 14:04 Evgeny.Panasyuk

Здравствуйте, alexzz, Вы писали:

A>У меня давно сложилось и продолжает укрепляться подозрение, что C++ ощутимо (хотя бы раза в два) быстрее C# только там, где повезёт и задачу можно векторизовать, и компилятор C++ сумеет при этом применить свою векторизовальную магию. А если не повезёт, то быстрее может и вообще не получиться.


1. Возьми тест из обсуждаемой статьи и сделай нормальный интерфейс для сортировки (например как у std::sort) — позволяющий сортировать последовательности из разных типов контейнеров, с разными типами элементов, и с разными предикатами сравнения, задаваемыми например замыканиями. Для пущей уверенности выключи любую автовекторизацию при замерах.

2. Посмотри вот этот пример
Автор: Evgeny.Panasyuk
Дата: 23.12.14
— оптимизаторы C++ щёлкают такой код на раз-два, выдавая ASM код идентичный ручному.

3. Ещё такой пример
Автор: Evgeny.Panasyuk
Дата: 20.06.15
: высокоуровневый код C++ скомпилированный в JavaScript почти в два раза быстрее аналога на C# в своей родной среде.
JavaScript, в веб-браузере, Карл!

Во всех случаях никакой векторизации
Re[7]: Java vs C# vs C++
Здравствуйте, alexzz, Вы писали:

A>У меня давно сложилось и продолжает укрепляться подозрение, что C++ ощутимо (хотя бы раза в два) быстрее C# только там, где повезёт и задачу можно векторизовать, и компилятор C++ сумеет при этом применить свою векторизовальную магию. А если не повезёт, то быстрее может и вообще не получиться.


1. Возьми тест из обсуждаемой статьи и сделай нормальный интерфейс для сортировки (например как у std::sort) — позволяющий сортировать последовательности из разных типов контейнеров, с разными типами элементов, и с разными предикатами сравнения, задаваемыми например замыканиями. Для пущей уверенности выключи любую автовекторизацию при замерах.

2. Посмотри вот этот пример
Автор: Evgeny.Panasyuk
Дата: 23.12.14
— оптимизаторы C++ щёлкают такой код на раз-два, выдавая ASM код идентичный ручной низкоуровневой версии.

3. Ещё такой пример
Автор: Evgeny.Panasyuk
Дата: 20.06.15
: высокоуровневый код C++ скомпилированный в JavaScript почти в два раза быстрее аналога на C# в своей родной среде.
JavaScript, в веб-браузере, Карл!

Во всех случаях никакой векторизации