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

Сообщение Re: Java vs C# vs C++ от 09.09.2015 6:32

Изменено 09.09.2015 6:33 Evgeny.Panasyuk

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

RAZ>Тут читал на хабре статью по сравнению производительности C# и C++. Сам джаву знаю плохо, но, может быть, кто-то производил замеры сам? Было бы интересно посмотреть сравнение, тем более везде говорят, что шарп и джава одинаковые по скорости.


И на C# и на Java (и даже на JavaScript!) можно писать быстрый код, грубо говоря с незначительным отставанием от C++.
Если выйти за рамки примитивнейшего примера обработки массива целых целиком внутри одной функции — то такой код на Java/C# будет сложнее чем аналогичного кода на C++, такого кода будет больше и он будет намного ниже уровнем.
Основная причина этого в том, что в C++ многие механизмы абстракции бесплатны, либо крайне дешёвые — в то время как на Java/C# они вносят overhead, и для того чтобы догнать C++ от них приходится отказываться.
То есть на C#/Java (да и на JavaScript) стоит выбор — либо использовать высокоуровневые средства и получать тормоза, либо отказываться от них и получать производительность близкую к высокоуровнему коду C++.

Вот в этой ветке
Автор: mik1
Дата: 02.06.15
есть конкретные примеры на тему — там и C++, и C#, и Java, и даже C++ скомпилированный в JavaScript.
Re: Java vs C# vs C++
Здравствуйте, xRAZORx, Вы писали:

RAZ>Тут читал на хабре статью по сравнению производительности C# и C++. Сам джаву знаю плохо, но, может быть, кто-то производил замеры сам? Было бы интересно посмотреть сравнение, тем более везде говорят, что шарп и джава одинаковые по скорости.


И на C# и на Java (и даже на JavaScript!) можно писать быстрый код, грубо говоря с незначительным отставанием от C++.
Если выйти за рамки примитивнейшего примера обработки массива целых целиком внутри одной функции — то такой код на Java/C# будет сложнее чем аналогичного кода на C++, такого кода будет больше и он будет намного ниже уровнем.
Основная причина этого в том, что в C++ многие механизмы абстракции бесплатны, либо крайне дешёвые — в то время как на Java/C# они вносят overhead, и для того чтобы догнать C++ от них приходится отказываться.
То есть на C#/Java (да и на JavaScript) стоит выбор — либо использовать высокоуровневые средства и получать тормоза, либо отказываться от них, пилить низкоуровневый boilerplate и получать производительность близкую к высокоуровнему коду C++.

Вот в этой ветке
Автор: mik1
Дата: 02.06.15
есть конкретные примеры на тему — там и C++, и C#, и Java, и даже C++ скомпилированный в JavaScript.