Re[34]: C# - from indians by indians
От: Evgeny.Panasyuk Россия  
Дата: 06.06.15 16:54
Оценка:
Здравствуйте, gandjustas, Вы писали:

EP>>Тезис в цитате (с которым я полностью согласен) довольно прост — на C++ проще создать быстрый код. Ты же пытаешься передёрнуть в какую-то совершенно другую плоскость

G>Плоскость та же самая. Просто ответь на вопрос насколько проще

Намного проще.

G>и насколько нужна скорость с учетом всех факторов,


Где-то нужна, а где-то нет

G>>>Для большинства проектов проценты прироста быстродействия

EP>>Причём тут "проценты"?
EP>>Выше как раз показано что при использовании Java-style это не проценты, а разы, и даже порядки.
G>А при использовании C# не разы.

В разы, бывает и на порядки

G>Кроме того операции с complex не такой уж частый случай. Я вот сомневаюсь что в том же ФБ много кода, работающего с вещественными числами.


Повторюсь в N-ый раз Это бьёт далеко не только по арифметике и подобным вычислениям.

G>>>останутся незамеченными и дешевле будет сделать апгрейд железа, чем заниматься оптимизацией. Поэтому утверждение что "на C++ быстрый код получить на порядки проще" не имеет никакого смысла и верно только в контексте фейсбука\гугла и еще пары-тройки гигантов.

EP>>Ты почему-то говоришь в контексте каких-то отдельных областей типа web'а — причём так, что как-будто ничего другого нет. Уж поверь "быстрый код на C++" нужен не только гигантам.
G>Не видел ни одного случая, чтобы без C++ нельзя было добиться достаточного быстродействия.

Опять 25. Без C++, на Java и C# можно добиться быстродействия, что не ясно-то? Ты с чем споришь?

EP>>Тебе попадаются задачи где не нужен? Поздравляю, вот только не надо необоснованно экстраполировать свой опыт на всю индустрию.

G>Как раз ты пытаешься опыт ФБ экстраполировать на всю индустрию.

Где я это пытаюсь делать?

G>Увы никто, из тех кто будет читать этот форум, даже близко не подойдет к таким масштабам.


Да причём тут вообще масштабы? Есть много программ которые работают на устройствах конечных пользователей и где нужна скорость.
Ты же пытаешься всё свести к каким-то случаям типа веб-масштабирования. Не хватает только коронного "всё в базу упирается".

G>>>В остальных случаях сложность оптимизации на C++ и C# (и иногда Java) сравнимы, а учитывая в общем более высокую сложность разработки на C++ еще непонятно что будет проще в итоге.

EP>>Нет, не сравнимы. В C++ я могу сделать много уровней абстракций, которые будут либо бесплатными, либо крайне дешёвыми. В C#, а тем более Java, так не получится. И вот за счёт этого получается проще.
G>А не делать уровни абстракции не? Или ты считаешь, что это на порядок сложнее?

Да, это на порядок сложнее. Например примеры из этого топика:
Вместо того чтобы просто объявить класс Complex — будешь вручную нарезать массив double.
Вместо того чтобы взять готовую ФВП transform, и передать в неё лямбду — будешь выписывать ручной for-цикл.
И чем больше уровней, тем больше ad-hoc boilerplate, причём комбинаторно.

EP>>Мой поинт наоборот противоположный, и я уже устал его повторять:

EP>>Предел оптимизации везде примерно одинаковый, разница в десятки процентов это не так уж серьёзно. Но на C++ этот предел гораздо проще достичь.
G>На практике ровно наоборот.

Почему это? Вот в этом топике и Java и C# показали скорость близкую к C++.

G>В C++ можно вовсе не выделять память под объекты, а в C#\Java без этого никак. В некоторых случаях только один этот факт позволяет из кода на C++ выжать в разы больше быстродействия. Правда затраты на такую оптимизацию очень быстро превышают разумные пределы.


Ты как раз подтверждаешь мои слова выше. Ты читал на что отвечаешь?

EP>>Предел оптимизации везде примерно одинаковый, разница в десятки процентов это не так уж серьёзно. Но на C++ этот предел гораздо проще достичь.
G>На практике ровно наоборот.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.