Подтвердить что ты не робот

Java vs С#: Есть ли какие-либо исследования, сравнивающие их скорость выполнения?

Извлекая все очевидные оговорки, связанные с бенчмарками и сравнительным сравнением, есть ли какое-либо исследование (массив хорошо документированных и непредвзятых тестов), который сравнивает среднюю скорость выполнения двух упомянутых языков? Благодаря

4b9b3361

Ответ 1

Лучшее сравнение, о котором я знаю, это компьютерная игра Benchmarks.

Он сравнивает скорость, использование памяти и размер исходного кода для (в настоящее время) 10 тестов на большом количестве языков программирования. Реализации контрольных показателей представлены пользователями и постоянно совершенствуются, поэтому позиция немного меняется.

Сравнение в настоящее время openjdk vs С#.NET Core.

В настоящее время он близок, но.NET Core немного быстрее в большинстве тестов.

Ответ 2

Здесь приятное недавнее исследование по теме:

Числовая производительность в C, С# и Java

Питер Сестофт ([email protected])

ИТ-университет Копенгагена Дания

Версия 0.9.1 2010-02-19

Аннотация: Мы сравниваем числовые показатели C, С# и Java в трех небольших случаях.

...

Ответ 3

Оба языка развиваются с точки зрения производительности. По крайней мере, в 2013 году Microsoft написал Джо Даффи в блоге:

Java ближе [до C++ в производительности], чем С#, благодаря отличной работе в виртуальных машинах с поддержкой HotSpot, которые используют качку кода и распределение стека.

Ответ 4

Это может пригласить flamewar, но эй, это мое мнение... Прежде всего, если ваш сайт работает слишком медленно, вам понадобится лучшее оборудование. Или больше оборудования и добавьте балансировку нагрузки на ваш сайт. Если вы Google, вы получите огромные серверные фермы с тысячами компьютеров, которые, как представляется, обеспечивают быструю работу, даже если сами сайты разрабатываются на устаревшем языке.
Большинство языков оптимизированный для получения наилучшего из своего оборудования и превосходит любой другой язык в этой конкретной среде с конкретной настройкой. Сравнение языков не имеет большого смысла, потому что есть тысячи методов для их оптимизации еще больше. Кроме того, как вы оцениваете производительность для начала?
Скажем, вы смотрите на скорость выполнения. Язык X может выполнить некоторую задачу в 2 раза быстрее, чем язык Y. Однако язык Y более оптимизирован для работы нескольких потоков и может служить в 10 раз больше пользователей, чем язык X за такое же время. Объедините это, и Y будет намного быстрее в среде клиент/сервер.
Но затем установите X в оптимизированную систему с операционной системой, которой X нравится много, с дополнительным оборудованием, гадзиллионным байтом памяти и дискового пространства и десяток или около того CPU и X снова победят Y.
Итак, какова ценность знания скорости выполнения языков? Или даже сравнение языков? Откуда мы знаем, что те, кто создал отчет, не были предвзятыми? Как мы уверены, что они использовали самые оптимальные настройки для каждого языка? Они даже пишут наиболее оптимальный код для тестирования? И как вы все равно сравниваете конечные результаты? Время выполнения для каждого пользователя? Или общее время выполнения?
Вернемся к языкам X и Y. X запускает задачу за 2 секунды, но поддерживает только 10 потоков одновременно, таким образом, 10 пользователей. Y требуется 6 секунд, но одновременно поддерживает до 50 потоков. X будет быстрее для каждого пользователя. Через две секунды X обработал 10 пользователей. Через 6 секунд X обработал 30 пользователей. К тому времени Y обработал бы 50 пользователей. Таким образом, Y будет превосходить X, когда у вас будет много пользователей, а X выйдет из Y с небольшим количеством пользователей. (Или темы.) Было бы интересно посмотреть, как сообщают об этом, верно?