LINUX.ORG.RU
ФорумTalks

Rust обогнал Сишечку по скорости распаковки

 , ,


0

5

Привет, ЛОР!

Случилось непредвиденное и невероятное: реализация библиотеки zlib на Rust (zlib-rs) обогнала реализацию на C по скорости распаковки и показывает примерно схожую с последней скорость запаковки данных. Разница в производительности может достигать аж 14%.

Есть ли смысл теперь вообще писать новый софт на Си, если даже в производительности он начинает терять лидерство? Что скажут эксперты по Си и почему zlib на Си так плохо оптимизирован?

Ссылка на бенчмарки: https://trifectatech.org/blog/zlib-rs-is-faster-than-c/

Перемещено dataman из development

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от vbr

скорость генерации увеличило примерно в 1000 раз
и увеличил ещё в 100 раз

Итого, в 100000 раз? А должно быть в 100500.

dataman ★★★★★
()
Ответ на: комментарий от dataman

Нет, это не так работает. Итого примерно в 100 раз получилось.

vbr ★★★★★
()
Ответ на: комментарий от hateyoufeel

Ключевой термин «conforming program». Половина сишного кода поражена UB.

Дык. Это не проблема совместимости со стандартом. Так что должно быть не

Сделать совместимую со стандартом реализацию Си – достаточно сложная задача

А «Сделать реализацию, которая не сломает кучу существующего кода завязанного на поведение существующих компиляторов - достаточно сложно»

red75prim ★★★
()
Ответ на: комментарий от skiminok1986

А что есть проще C? Ассемблер?

Oberon A2 © – проще и человекоориентированнее :)

quickquest ★★★★★
()

4.2. Не раст обогнал Си, а zlib-rs обогнал zlib на Си.

Есть ли смысл теперь вообще писать новый софт на Си

Зависит от целей и задач.

почему zlib на Си так плохо оптимизирован?

Если код некачественный - претензии к кодерам.

mister_me
()
Ответ на: комментарий от hateyoufeel

Ичо?

Всё же чётко сказано - страдает эффективность.

Это всё равно получается безопаснее чем писать на Си.

Сравниваете тёплое с мягким.

Если почитаешь код, там unsafe всего несколько функций.

Вангую, что если поставить unsafe там, где он не используется, безопасность не пострадает. Хотя опять же, это мнение, а не факт.

mister_me
()
Ответ на: комментарий от mister_me

Если код некачественный - претензии к кодерам.

Ну, да. Всё верно. Так как сишники не осиливают раст, то выкинуть сишку – лучшее средство против говнокодеров.

Всё же чётко сказано - страдает эффективность.

Не, не страдает. Много раз доказано, в том числе и здесь, что Rust выдаёт сравнимую с Си производительность.

Вангую, что если поставить unsafe там, где он не используется, безопасность не пострадает. Хотя опять же, это мнение, а не факт.

Зачем ставить unsafe, если он не нужен?

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от next_time

Ada огромна и жирна, и включает в себя многопоточную модель, ООП и так далее. Lisp и Tcl требуют сборщик мусора, макросы и интерпретацию. Сразу мимо.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от next_time

Последнее посещение: 16.03.22 12:30:06 GMT

Это называется «нет».

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от next_time

шейдеры легко обгоняют ассемблер

внезапно там тоже бывает ассемблер - DirectX Shader Assembly Language или Adobe Graphics Assembly Language, так что нет, ассемблер он и есть ассемблер, даже если назвали по-другому :)

Ну и там же где то диалекты сишечки - Cg и GLSL

И так-то шейдер - это программа для gpu, а ассемблер - язык, обогнать шансов нет)

sergej ★★★★★
()
Ответ на: комментарий от sergej

DirectX Shader Assembly Language или Adobe Graphics Assembly Language

депрекатед оба, первый ещё и оффтоп

шейдер - это программа для gpu

имелись в виду языки написания шейдеров

диалекты сишечки

примерно, как раст, ага - общего примерно столько же

next_time ★★★★★
()
Ответ на: комментарий от next_time

ну на расте я как-то небольшой проект писал, на шейдерах нет

но про Cg/HLSL четко написано - based on C

а Rust точно не based, там от си только фигурные скобки

sergej ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)