Size: a a a

2020 May 02

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
И получается benchmarking game, где все пишут программы на ассемблере и называют это Rust/Go/C++
Так ассемблерные вставки просто банятся проверялкой сразу
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
Так ассемблерные вставки просто банятся проверялкой сразу
Интринсики так просто не забанишь
Как и dlopen + libm
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Интринсики так просто не забанишь
Как и dlopen + libm
Вот подгрузку лишнего чего ради безопасности песочницы очень далеко отправляют
С интрисиками сложнее, да
источник

AZ

Alexander Zaitsev in pro.cxx
Antony Polukhin
Интринсики так просто не забанишь
Как и dlopen + libm
ну тут просто строгие критерии ввести. и чтобы каждое решение ревью проходило
источник

CD

Constantine Drozdov in pro.cxx
Alexander Zaitsev
ну тут просто строгие критерии ввести. и чтобы каждое решение ревью проходило
да ревью на уровне поиска подстрок не такая проблема
источник

IA

Igor Akhmetov in pro.cxx
Constantine Drozdov
Мне кажется, вполне работает суровый олимпиадный подход, берем задачу, комплект тестов и предлагайте ваши решения (решения публикуются).
На типичной олимпиадной задаче C, C++ и Rust скорее всего выдадут +- одно время. JVM и .NET будут недалеко. Какой сделаем вывод?
источник

CD

Constantine Drozdov in pro.cxx
Igor Akhmetov
На типичной олимпиадной задаче C, C++ и Rust скорее всего выдадут +- одно время. JVM и .NET будут недалеко. Какой сделаем вывод?
Что в соседней конфе обсуждают, что секунда это слишком мало для JVM)
источник

F

Fox in pro.cxx
Constantine Drozdov
Мне кажется, вполне работает суровый олимпиадный подход, берем задачу, комплект тестов и предлагайте ваши решения (решения публикуются).
Угу, тут для биста написал велосипедный парсер  uri,  и  сразу кучу тест-кейсов
источник

CD

Constantine Drozdov in pro.cxx
Igor Akhmetov
На типичной олимпиадной задаче C, C++ и Rust скорее всего выдадут +- одно время. JVM и .NET будут недалеко. Какой сделаем вывод?
Я по олимпиадному опыту могу сказать, что вы очень неплохо разницу между C++ компиляторами будете чувствовать, не то что
источник

IL

Ignat Loskutov in pro.cxx
Stas
А мы разве в С++ не ради производительности?
Производительность очень разная бывает. Мы, например, базы данных пишем и упираемся или в IO, или в криптованную сеть, если запросов много (при этом крипта, так уж исторически сложилось, написана как раз на ассемблерных вставках с aesni), или в плюсовый код, если где-то набагали. Соответственно, живём на C++ (а до этого вообще на С, но от этого отошли, слава б-гу), потому что возможность контролировать layout объектов в памяти ценна, но по микрооптимизациям не заморачиваемся, потому что незачем. Кажется, что примерно в любом приложении в реальной жизни есть О(1) боттл-неков, в которых перформанс критичен, и весь остальной код, где достаточно сколь-нибудь приличного уровня.
источник

F

Fox in pro.cxx
Fox
Угу, тут для биста написал велосипедный парсер  uri,  и  сразу кучу тест-кейсов
Пока все не отработали, не успокоился, хотя вот думаю, какие ещё кейсы бы для uri фигануть
источник

AP

Antony Polukhin in pro.cxx
Ignat Loskutov
В сферическом случае в вакууме набирать выборку побольше (те же публично доступные бенчмарки — тот факт, что в них, бывает, читерят, всё же не обнуляет их полезность). Конкретно в случае с C++ и Rust мне кажется уместным считать, что в среднем по больнице эффективность кода получается близкой (мне трудно оценить, насколько много CPU bound приложений страдают, например, от того, что передача unique_ptr по значению небесплатна, но полагаю, что немного) и сравнивать по другим параметрам: всё же выбор между C++ и Rust — это обычно не про производительность кода, а про удобство разработки, поддержки и так далее.
Ну так в статье то спорят не с удобстовом разработки и поддержки :)

В докладе я подвергал сомнению утверждение, что Rust такой же быстрый. Показал примеры, где есть лишние обращения к памяти. Готово, не такой же быстрый на том же компиляторе.

Были статьи с другими сравнениями, где Rust выигрывал. Выигрывал за счёт написанных на асемблере (а не Rust) программах и за счёт компилирования C++ кода более старыми компиляторами.

Что-то люди из Rust не подвергали сомнению результаты
источник

F

Fox in pro.cxx
Fox
Пока все не отработали, не успокоился, хотя вот думаю, какие ещё кейсы бы для uri фигануть
Там простая сегментация на document, query string и fragment
источник

F

Fox in pro.cxx
Antony Polukhin
Ну так в статье то спорят не с удобстовом разработки и поддержки :)

В докладе я подвергал сомнению утверждение, что Rust такой же быстрый. Показал примеры, где есть лишние обращения к памяти. Готово, не такой же быстрый на том же компиляторе.

Были статьи с другими сравнениями, где Rust выигрывал. Выигрывал за счёт написанных на асемблере (а не Rust) программах и за счёт компилирования C++ кода более старыми компиляторами.

Что-то люди из Rust не подвергали сомнению результаты
+++; мы тут обсуждали в прошлом году, после конференции; ну, будем конструктивнее, и лучше будем знать соседний язык🤷‍♂
источник

IL

Ignat Loskutov in pro.cxx
Antony Polukhin
Ну так в статье то спорят не с удобстовом разработки и поддержки :)

В докладе я подвергал сомнению утверждение, что Rust такой же быстрый. Показал примеры, где есть лишние обращения к памяти. Готово, не такой же быстрый на том же компиляторе.

Были статьи с другими сравнениями, где Rust выигрывал. Выигрывал за счёт написанных на асемблере (а не Rust) программах и за счёт компилирования C++ кода более старыми компиляторами.

Что-то люди из Rust не подвергали сомнению результаты
Ну да, получается в обе стороны не такой же быстрый. Какие из этого можно сделать содержательные выводы — непонятно.
источник

IA

Igor Akhmetov in pro.cxx
Constantine Drozdov
Я по олимпиадному опыту могу сказать, что вы очень неплохо разницу между C++ компиляторами будете чувствовать, не то что
По моему олимпиадному опыту могу сказать, что есть команды-победители ICPC которые пишут на Java, есть команды которые пишут на C++. Для такого рода задач разница в производительности не играет роли.
источник

CD

Constantine Drozdov in pro.cxx
Antony Polukhin
Ну так в статье то спорят не с удобстовом разработки и поддержки :)

В докладе я подвергал сомнению утверждение, что Rust такой же быстрый. Показал примеры, где есть лишние обращения к памяти. Готово, не такой же быстрый на том же компиляторе.

Были статьи с другими сравнениями, где Rust выигрывал. Выигрывал за счёт написанных на асемблере (а не Rust) программах и за счёт компилирования C++ кода более старыми компиляторами.

Что-то люди из Rust не подвергали сомнению результаты
Мне кажется, что абсурдно (ну не считая евангелизма) обсуждать Rust vs C++. Мое личное мнение заключается в том, что надо сказать спасибо Rust за полигон для идей и "спасибо, нет" для их идеи отказа от открытых перегрузок. Их ссылочная модель (по наслышке) прямо вписывается в идеологию С++ о проверках С в компильтайме
источник

F

Fox in pro.cxx
Constantine Drozdov
Мне кажется, что абсурдно (ну не считая евангелизма) обсуждать Rust vs C++. Мое личное мнение заключается в том, что надо сказать спасибо Rust за полигон для идей и "спасибо, нет" для их идеи отказа от открытых перегрузок. Их ссылочная модель (по наслышке) прямо вписывается в идеологию С++ о проверках С в компильтайме
Разумно, да
источник

CD

Constantine Drozdov in pro.cxx
Igor Akhmetov
По моему олимпиадному опыту могу сказать, что есть команды-победители ICPC которые пишут на Java, есть команды которые пишут на C++. Для такого рода задач разница в производительности не играет роли.
Игорь, вы, видимо, не левый человек, скажите мне, сколько из этих команд, пишущих на Java, не обладают навыком "быстренько переписать на плюсы"
источник

IL

Ignat Loskutov in pro.cxx
Нужно заметить справедливости ради, что иногда это заканчивается «переписал и упихалось», а иногда — «переписал и стало медленнее» или «переписал и кажется пихать куб было плохой идеей»
источник