???
Математика на уровне МГУ

Показано с 1 по 25 из 162

Тема: Про вычислительную технику

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пилот Аватар для Дм. Журко
    Регистрация
    20.12.2007
    Адрес
    Калининград (Кёнигсберг)
    Возраст
    59
    Сообщений
    772

    Re: Про вычислительную технику

    Цитата Сообщение от Yurec Посмотреть сообщение
    Да, испытывал. И не только я - ссылку приводил выше. Сомневаетесь в результатах? Опровергните.
    Чего их опровергать? Ну обнаружили, что три параметра в примере передаются вчетверо медленнее, и что? Так, по-вашему, замеряют быстродействие? Да, C++ неплохо передаёт небольшое число параметров в функцию, может даже в регистры пару засунуть, проверок не делает. И что?

    Приведите код, посмотрим. Я привел ссылку, там код и числа. Вы не привели ничего.
    Наплевать мне на ссылки, как Вы не можете с одного раза-то понять? Для меня важнее, что мой коллега перевёл свой довольно большой проект с Delphi на C# и получил очевидный даже на глаз выигрыш скорости перерисовок, хотя не скорость его занимала. Главное, что перенос дался легко и выявил ряд недоразумений.

    Впрочем, если рассматривать "сфероконя в вакууме" - голый цикл с суммированием чисел - производительность дествительно сравнимая, у C# чуть-чуть выше, это я тоже проверял. Только как обычно бывает, в реальном приложении картина совсем другая. Чуть ниже тестовый код и результаты.
    C# обгоняет C++ на сложных вещественных вычислениях. Замерять сложение? А зачем? Обгоняет и при работе с кучей.

    Я предлагаю писать на том, что более эффективно.
    Именно, что более эффективно для производительности программирования. Заодно, кстати, это даст время и средства на доводку производительности алгоритмов.

    Дмитрий, а Вы сами-то хоть одним проектом управляли, сложнее драйвера для портов?
    Да управлял. Причём на C++.

    Не все, только номер 2 - движок для онлайн-казино, в составе команды из 3х человек. Название компании-заказчика привести не могу, по вполне понятной причине.
    Писали на C++, поскольку заказчик предъявил определенные требования к производительности. На C# выполнить эти требования было бы невозможно.
    И мне пофиг, сколько лет C# - если бы задачу можно было выполнить на нем, я бы так и сделал. Но это не всегда возможно.
    То есть, не испытали C#. А методология сравнения Ваша хромает на все ноги.

    Уже нашел. Облегчу Вам задачу и приведу ссылку еще раз: http://www.kbcafe.com/articles/CSharp.Performance.pdf
    Впрочем, там не везде в 4 раза, целочисленные вычисления - только в 2.
    Приведу еще и свой тест:
    И результат:
    C++ - 2781 тиков
    C# - 11906 тиков
    Более чем в 4 раза.
    Скрин с результатом на всякий случай приаттачил.
    Хотя я не спец по шарпу, возможно что-то упустил.
    Код этот можно сократить раз в 10, если не 100. Но это не программа, а невесть что. Наверняка для C++ использовали оптимизации, а на C# и не думали (что правильно, это последнее дело). Возьмите примеры из Visual Studio на C++ и C# и сравните производительность, я сравнивал.

    Да, и небольшое замечание по поводу кода. Можно было бы обойтись структурами (для Storage например), но поскольку мы обсуждаем большие и сложные программы, нас интересует работа с классами в первую очередь.
    Нет тут классов, есть какие-то ошмётки. Настоящие объекты намного больше, а значит и регистровая оптимизация не очевидно полезна. Собственно, это одна из методологических посылок приведшая к абстрактному стековому байткоду -- широкое использование сложных объектов приводит к тому, что регистровая оптимизация не необходима. На RISC-процессорах, кстати, сверхоперативный стек чаще всего есть, но не на x86, там только сопроцессор имеет новую архитектуру.

    Хамство Вам не к лицу.
    Хорошо, что Вы это понимаете. Вот и перестаньте хамить.

    Найдите хоть один _технологичный_ и _производительный_ 3D движок _полностью_ на C#. Сравнимый с другими хорошими движками, такими как Unreal Engine или движок Crysis.
    Не знаю таких. Мне это было надо? Пользовался Direct 3D 9 и не беспокоился, я трёхмерные стрелялки, к счастью, не пишу.

    При чем тут шкалы и схемы? Вас про игры спрашивают, причем про _современные_ _технологичные_ игры.
    Притом, что я их использую, это мой опыт.

    Наберите в google «Производительность C#» и наслаждайтесь, если вопрос волнует. Только у Вас, замечу, вопросов нет, остальные приходят к сложным выводам. Сразитесь там на форумах с «идиотами», которые своё время оценивают выше компьютерного.

  2. #2
    Зашедший
    Регистрация
    12.07.2004
    Адрес
    Харьков
    Возраст
    45
    Сообщений
    140

    Re: Про вычислительную технику

    Цитата Сообщение от Дм. Журко Посмотреть сообщение
    Чего их опровергать? Ну обнаружили, что три параметра в примере передаются вчетверо медленнее, и что?
    То, что в реальной программе таких функций с такими параметрами будет очень много.

    Так, по-вашему, замеряют быстродействие?
    Замеряют по-разному. Замеры различных алгоритмов, начиная от работы со строками и заканчивая обработкой XML и выборкой из баз данных, можно найти в гугле, ссылки я привел. Почти все замеры показывают худшую производительность, от 2х до 4х раз. А замеров передачи параметров я не видел, поэтому написал свой тест.

    Да, C++ неплохо передаёт небольшое число параметров в функцию, может даже в регистры пару засунуть, проверок не делает. И что?
    То, что программы на C# работают медленнее. Сколько раз повторить, что Вам дошло?

    Наплевать мне на ссылки, как Вы не можете с одного раза-то понять?
    Хорошо, тогда я Вам без ссылок скажу: программа на C# будет работать в среднем в 2-4 раза медленнее программы на C++. Спасибо, свободны.

    Для меня важнее, что мой коллега перевёл свой довольно большой проект с Delphi на C# и получил очевидный даже на глаз выигрыш скорости перерисовок, хотя не скорость его занимала. Главное, что перенос дался легко и выявил ряд недоразумений.
    И по этому единичному случаю Вы судите о быстродействии языка? Смешно. Тем более Дельфи - далеко не эталон, ага.

    C# обгоняет C++ на сложных вещественных вычислениях.
    Это не имеет никакого значения, поскольку в общем скорость упадет в 2-4 раза. Я Вам про сфероконя уже раза 4 писал, Вы так и не поняли.

    Именно, что более эффективно для производительности программирования. Заодно, кстати, это даст время и средства на доводку производительности алгоритмов.
    Вы русский язык понимаете? Если стоят определенные требования по быстродействию, никакая производительность программирования Вам не поможет, проект будет провален.

    То есть, не испытали C#.
    С чего Вы это взяли? Испытали, разумеется. Решение о выборе языка принимали не от фонаря.

    Код этот можно сократить раз в 10, если не 100.
    Вы что, правда не понимаете зачем там именно такой код? Поясняю на пальцах: в реальной программе нужна инкапсуляция процесса выполнения, процесса вычислений и данных.

    Но это не программа, а невесть что.
    Нет. Невесть что - это то что Вы здесь пишете.

    Наверняка для C++ использовали оптимизации, а на C# и не думали
    Оптимизацию использовал и в C#. Не надо меня обвинять в подтасовках. Неужели получше аргументов не нашлось?

    Возьмите примеры из Visual Studio на C++ и C# и сравните производительность, я сравнивал.
    Какие именно примеры брали?

    Не знаю таких. Мне это было надо? Пользовался Direct 3D 9 и не беспокоился, я трёхмерные стрелялки, к счастью, не пишу.
    Не пишете, но заявляете, что на C# можно написать. Так вот, я Вам говорю - нельзя, тормозить будет неимоверно. На этот раз без ссылок, раз на ссылки Вам плевать.

    Притом, что я их использую, это мой опыт.
    Но вопрос Вам задали не про это.

    Наберите в google «Производительность C#» и наслаждайтесь, если вопрос волнует.
    А Вы думаете, откуда я взял вышеприведенные ссылки? Именно из гугла, именно по таком запросу, только на английском языке.

    =============

    EDIT: после прочтения вот этого все вопросы отпали. В игнор.
    Крайний раз редактировалось Yurec; 04.05.2008 в 20:22.

  3. #3
    Пилот Аватар для Дм. Журко
    Регистрация
    20.12.2007
    Адрес
    Калининград (Кёнигсберг)
    Возраст
    59
    Сообщений
    772

    Re: Про вычислительную технику

    Цитата Сообщение от Yurec Посмотреть сообщение
    То, что в реальной программе таких функций с такими параметрами будет очень много.
    Что по-вашему «много»?

    Замеряют по-разному. Замеры различных алгоритмов, начиная от работы со строками и заканчивая обработкой XML и выборкой из баз данных, можно найти в гугле, ссылки я привел. Почти все замеры показывают худшую производительность, от 2х до 4х раз. А замеров передачи параметров я не видел, поэтому написал свой тест.
    Нет там ни 4, ни 2, если речь вести о последней паре лет. Причём часто дело именно в том, что методологию сравнения приблизили к делу.

    То, что программы на C# работают медленнее. Сколько раз повторить, что Вам дошло?
    Не медленнее на деле, опыт имею.

    Хорошо, тогда я Вам без ссылок скажу: программа на C# будет работать в среднем в 2-4 раза медленнее программы на C++. Спасибо, свободны.
    Не «будет работать», а работает давно, и не медленнее, по крайней мере.

    И по этому единичному случаю Вы судите о быстродействии языка? Смешно.
    Есть доводы серьёзнее? И что Вы там раньше о сборке мусора спрашивали? Она-то причём?

    Тем более Дельфи - далеко не эталон, ага.
    Некоторое время обгонял VC. Потом и MS тоже использовали кодогенератор Intel. Разница на уровне дополнительных квалификаторов. Кстати, вызов процедуры Delphi, вроде, до сих пор быстрее.

    Это не имеет никакого значения, поскольку в общем скорость упадет в 2-4 раза. Я Вам про сфероконя уже раза 4 писал, Вы так и не поняли.
    Не упадёт.

    Вы русский язык понимаете?
    Хорошо понимаю, не беспокойтесь.

    Если стоят определенные требования по быстродействию, никакая производительность программирования Вам не поможет, проект будет провален.
    Есть опыт провалов? Знаю цену скорости кодогенерации -- она ни разу не была важной. Хотя все сравнивают, все беспокоятся. Я, как видите, тоже сравнивал когда-то, тоже переживал и ассемблерные генерации правил. Прошло.

    С чего Вы это взяли? Испытали, разумеется. Решение о выборе языка принимали не от фонаря.
    А получилось именно так.

    Вы что, правда не понимаете зачем там именно такой код? Поясняю на пальцах: в реальной программе нужна инкапсуляция процесса выполнения, процесса вычислений и данных.
    Пояснил уже. Напрмер, в C#, даже unmanned, есть проверки времени исполнения, которых нет в C++, значит, если Вы будете испытывать пример, в котором проверки будут обрабатываться основную часть времени, Вы получите произвольно большое соотношение «тиков». Вот только к производительности это не имеет прямого отношения.

    Лучшие профессионалы отрасли исследовали относительную цену проверок и выигрыша производительности.

    Нет. Невесть что - это то что Вы здесь пишете.
    Нет -- Вы.

    Оптимизацию использовал и в C#. Не надо меня обвинять в подтасовках. Неужели получше аргументов не нашлось?
    Какую? Сейчас не так много средств оптимизации C#. Замечу, что C# вполне можно просто компилировать, как C++, без байткода. Семантика вполне это позволяет, она много проще C++. У Вас просто нет таких средств. Что не значит, что при окончательной сборке ответственного проекта нельзя их использовать.

    Какие именно примеры брали?
    Из Direct 3D SDK.

    Не пишете, но заявляете, что на C# можно написать. Так вот, я Вам говорю - нельзя, тормозить будет неимоверно. На этот раз без ссылок, раз на ссылки Вам плевать.
    Не тормозит, это я Вам не ссылку, а опыт сообщаю.

    Но вопрос Вам задали не про это.
    А ответил я про это, умному достаточно.

    А Вы думаете, откуда я взял вышеприведенные ссылки? Именно из гугла, именно по таком запросу, только на английском языке.
    И читали ссылки-то? Или ограничились парой статей 1997 и 2002-2003 годов?

    EDIT: после прочтения вот этого все вопросы отпали. В игнор.
    Как я без Ваших ценных замечаний буду?

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •