Здравствуйте, Mamut, Вы писали:
g>> В итоге по-русски можно написать "сществуют программы, для которых реализация на С++ окажется не самой быстрой", что совсем по-русски звучит как "иногда программы на С++ медленее", а не то что ты придумал.
M>Кстати, а есть таки примеры, где это так? Вроде, где-то в КСВ приводили примеры, я сейчас не найду
Вот здесь на графиках видны примеры, где C++ уступает C#.
В исходниках не ковырялся
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, gandjustas, Вы писали:
G>>То что С++ (именно с плюсами) нах не нужен. Для быстрых числомолотилок берем код на C и нормально зовем его из любого языка.
V>Я уже не первый раз вижу это мнение, но не могу понять мотивы, может объяснишь? Наилучшие по оптимизации компиляторы — это С++, и они умеют коомпилировать С-код. Вот смысл мне не пользоваться возможностями более высокоуровневого языка, если у мня все-равно будет использован компилятор, который прекрасно компилит оба языка. Смотри: в чистом С ссылочный тип не строго типизирован, нет инлайна, нет инициализации по месту, недоступна ОО-декомпозиция (а в этом миксере участвует около десятка классов, и кое-какая шаблонность есть, правда без претензий на МП) и т.д и т.п. Поэтому поинт не понятен совершенно, по мне С++ в стиле "С с классами" все равно гораздо мощнее С. Я бы советовал ровно наоборот, там где можно, вместо С использовать С++.
Я имею ввиду не использование компилятора С, а неиспользование возможностей C++ — классов, шаблонов, динамической памяти и прочего.
Для числомолотилок оно и не нужно.
G>>Ну тупи. "Не всегда быстрее" = "иногда медленее". Сам себе что-то придумываешь, а потом непонятно кому доказываешь. IID>Примера этого "иногда медленее" я так и не увидел, между прочим.
Я привел пример в этой теме. Чистая синтетика, о которой ты так мечтаешь.
G>>В итоге по-русски можно написать "сществуют программы, для которых реализация на С++ окажется не самой быстрой", что совсем по-русски звучит как "иногда программы на С++ медленее", а не то что ты придумал.
IID>Ой как хорошо. Т.к. мы рассуждаем о .NET-е, то ОЧЕНЬ хочется посмотреть на такую .NET программу, для которой реализация на C++ окажется не самой быстрой. И не заваливайся в сторону "всё другие языки vs C++", мы готоврим только о .NET vs C++.
Здравствуйте, IID, Вы писали:
IID>Не уводите тему в сторону. Мы сейчас рассуждаем только о скорости получившегося кода.
А тебе о скорости получаемых приложений. Она определяется не только, да и не столько скоростью выполняемого кода сколько качеством и скоростными характеристиками используемых алгоритмов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, gandjustas, Вы писали:
IID>> Иными словами C++ всегда может работать НЕ МЕДЛЕНЕЕ дотнета. G>Не всегда, за счет динамической кодогенерации
При всех этих динамических компиляциях и кешированиях, Генка Риггер как то пожаловался что им скоро придётся вместе со своими продуктами продавать пакетики травы — чтобы визуально сглаживать постоянные рывки производительности
G>прога на .NET может работать быстрее аналогичной прогри на C++.
Я тебя обрадую — к С++ тоже можно приделать динамическую кодогенерацию, я это делал когда-то. Однако для С++ это не нужно он и так почти всегда близок к оптимому при прочих равных.
G>А вообще второе твое утверждение не эквивалентно первому, изучай логику.
Не тебе говорить о логике
IID>>Любопытно другое — на С++ можно написать код, который как не пыжься, на дотнете с одинаковой производительностью не повторить. (md5 например) G>Только это будет не C++, а голый С. Все фичи, которые тут обсасываются сторонниками С++ идут лесом.
Ты не знаешь С++ иначе бы не нёс ересь про С
Здравствуйте, IID, Вы писали:
IID>Из конкретики — о увеличичении скорости написания кода (могу согласиться). Остальное — вода, зависящая от кучи факторов. Совершенно непонятно, почему код С++ лишается возможности быть качественным, иметь продуманный дизайн, хорошие алгоритмы. арианта.
Он не лишается. Просто добиться того же качества значительно дороже.
Собственно ассемблер дает еще больший простор для оптимизаций и потенциально на нем можно написать более быстрый софт. Но это еще дорожа (причем очень существенно). Посему даже такие богатые компании как MS и IBM не пользуются им.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Я уже не первый раз вижу это мнение, но не могу понять мотивы, может объяснишь? Наилучшие по оптимизации компиляторы — это С++, и они умеют коомпилировать С-код. Вот смысл мне не пользоваться возможностями более высокоуровневого языка, если у мня все-равно будет использован компилятор, который прекрасно компилит оба языка. Смотри: в чистом С ссылочный тип не строго типизирован, нет инлайна, нет инициализации по месту, недоступна ОО-декомпозиция (а в этом миксере участвует около десятка классов, и кое-какая шаблонность есть, правда без претензий на МП) и т.д и т.п. Поэтому поинт не понятен совершенно, по мне С++ в стиле "С с классами" все равно гораздо мощнее С. Я бы советовал ровно наоборот, там где можно, вместо С использовать С++.
Если меня память не подводит, он утверждал что применение шаблонов тормозит скорость выполнения
Здравствуйте, Anton Batenev, Вы писали:
AB>Вот тут все про моно да про моно. Но хоть бы кто-нибудь показал мастер-класс на оном, а то складывается впечатление, что его защитники видели его только на картинках, а те, кто его пользовал, молчат, дабы не было стыдно.
Что ты хочешь увидеть?
Компилятор Nemerle параллельно живет под двумя рантаймами: Mono и .Net. Можешь загрузить и скомпилировать. Это подойдет для "просмотра"?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
G>Я имею ввиду не использование компилятора С, а неиспользование возможностей C++ — классов, шаблонов, динамической памяти и прочего. G>Для числомолотилок оно и не нужно.
Шаблоны и классы нужны, позволяют получить более шустрый код чем чистый си.
Здравствуйте, VladD2, Вы писали:
VD>Собственно ассемблер дает еще больший простор для оптимизаций и потенциально на нем можно написать более быстрый софт. Но это еще дорожа (причем очень существенно). Посему даже такие богатые компании как MS и IBM не пользуются им.
Ассемблер сейчас дает меньший простор, кроме нескольких узких случаев, и даже для них удобнее править выхлоп сишного компилятора.
К тому же ассемблер средство другого класса, трудоемкость разработки на нем (даже учитывая чудеса макроассемблеров) на порядок ниже чем на C++. Шарп и С++ по трудоемкости разработки в одном классе.
Здравствуйте, NikeByNike, Вы писали:
G>>прога на .NET может работать быстрее аналогичной прогри на C++. NBN>Я тебя обрадую — к С++ тоже можно приделать динамическую кодогенерацию, я это делал когда-то. Однако для С++ это не нужно он и так почти всегда близок к оптимому при прочих равных.
На С++ значит динамическая кодогенерация не нужна так как код близкий к оптимальному. А динамическая генерация кода на .NET позволяет C++ уделывать.
G>>А вообще второе твое утверждение не эквивалентно первому, изучай логику. NBN>Не тебе говорить о логике
И не тебе. Так что не влазь.
IID>>>Любопытно другое — на С++ можно написать код, который как не пыжься, на дотнете с одинаковой производительностью не повторить. (md5 например) G>>Только это будет не C++, а голый С. Все фичи, которые тут обсасываются сторонниками С++ идут лесом.
NBN>Ты не знаешь С++ иначе бы не нёс ересь про С
Ты о чем? Исходники md5 отлично собираются голым C компилятором.
Здравствуйте, VladD2, Вы писали:
VD> Что ты хочешь увидеть?
Мастер-класс, я же написал
VD> Компилятор Nemerle параллельно живет под двумя рантаймами: Mono и .Net. Можешь загрузить и скомпилировать. Это подойдет для "просмотра"?
Nemerle — это тот же моно, только в профиль. Но, почему-то, развивать с тобой дискуссию в этом направлении у меня нет никакого желания. Откланиваюсь заранее.
Здравствуйте, IID, Вы писали:
IID>Можно пример программы на .NET, которую невозможно будет обогнать программой на С++ ?
Вопрос в принципе не корректен, так как язык сам по себе не может быть быстрее или медленнее. Скажем Борлондовские компиляторы С++ в большинстве случаев порождают код более медленный чем MS .Net.
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, gandjustas, Вы писали:
G>>Я имею ввиду не использование компилятора С, а неиспользование возможностей C++ — классов, шаблонов, динамической памяти и прочего. G>>Для числомолотилок оно и не нужно.
FR>Шаблоны и классы нужны, позволяют получить более шустрый код чем чистый си.
Здравствуйте, VladD2, Вы писали:
VD>Ну, а главное, что есть софт который в условиях ограниченных ресурсов вообще нельзя реализовать на С++ (костьми ляжешь).
Оно же верно и для шарпа, поэтому я на него так и не перешёл
Игры, кроссплатформенные приложения, некоторые виды миддлеваре
Здравствуйте, IID, Вы писали:
IID>P.S.: подсказка: сам CLR написан на C/С++, и скорость выполнения .NET кода это, в определённом смысле, скорость выполнения некоторой С++ программы. Которую всегда можно, как минимум, не замедлить.
Замечательная логика! Точнее ее полное отсутствие.
Из этой предпосылки можно сделать вывод, что если написать компилятор, скажем, С на Руби, то получаемые программы будут иметь "в определенном смысле" (не знаю что за этим скрывается) скорость Руби (т.е. будут тормозными).
Бред? Несомненно! Но это твой бред .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, IID, Вы писали:
IID>Отвечу в этом месте обоим: JIT связан по рукам и ногам временными ограничениям. У С++ компилятора свободы (времени) гораздо больше. Насколько я понимаю, кода никто не приведёт, и можно засчитывать слив ?
А чем связан NGEN? (погугли прежде чем отвечать).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Anton Batenev, Вы писали:
VD>> Компилятор Nemerle параллельно живет под двумя рантаймами: Mono и .Net. Можешь загрузить и скомпилировать. Это подойдет для "просмотра"? AB>Nemerle — это тот же моно, только в профиль. Но, почему-то, развивать с тобой дискуссию в этом направлении у меня нет никакого желания. Откланиваюсь заранее.
Не, ну это как-то не хорошо с твоей стороны. Получается ты просто игнорируешь реальные примеры. Зачем тогда спрашивать
Здравствуйте, VladD2, Вы писали:
VD>Но вот тебе забавный пример в тему: VD>http://tirania.org/blog/archive/2008/Nov-03.html
VD>Ну, а главное, что есть софт который в условиях ограниченных ресурсов вообще нельзя реализовать на С++ (костьми ляжешь).
Неубедительно учитывая горячую любовь игроделов к интеловскому компилятору, который подобные вещи хорошо векторизует, плюс не менее горячую любовь к интрисикам тех игроделов которые не любят интеловский компилятор