LINUX.ORG.RU

А раст они тоже взяли версии, проверенной временем? И llvm 3.5 или 4.0?

As you might notice, there are latency and CPU spikes roughly every 2 minutes.

Но это же, сравнительно, целая вечность между этими двумя минутами.

After a bit of profiling and performance optimizations, we were able to beat Go on every single performance metric. Latency, CPU, and memory were all better in the Rust version.

Странно: если усреднить нагрузку на процессор, то, похоже, получится, что go-версия в среднем потребляет меньше ресурсов.

А где графики потребления оперативки?

gag ★★★★★
()

Круто. Но свой никому не нужный шакализатор, из-за которого не работает WebP они выкидывать не собираются, я так понял, да?

О, ещё один вопрос, Раст давно не тыкал. А чтобы им пользоваться больше не нужно ставить nightly компилятор?

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

Потому что в rust «stable» не было фич асинхронности, а сторонние библиотеки их не устроили излишней вознёй с ними, насколько я понял из текста.

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

Странно: если усреднить нагрузку на процессор, то, похоже, получится, что go-версия в среднем потребляет меньше ресурсов.

Меня тоже позабавило их «had no latency spikes!» при средней большей нагрузке на процессор. Только что такое @mentions не понял.

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

Они не боятся применять новые перспективные технологии, их не беспокоят трудности и нестабильность «переднего края» разработки.

Ну заодно может помогут разработчикам rust отработать async.

В примечаниях пишут, что всё подряд на rust они переписывать не собираются.

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

Ещё интересно, как часто проводился семплинг нагрузки. График намекает, что недостаточно часто, так что, возможно, там пик по времени на самом деле короче.

gag ★★★★★
()

проблема с GC в Go 3-x летней давности

На Hacker News пишут, что с момента обнаружения проблемы было 4 обновления Go. Видимо, эксперименты по переписыванию начались раньше, чем была выкачена новая версия с улучшенным временем отклика GC.

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

Меня тоже позабавило их «had no latency spikes!» при средней большей нагрузке на процессор. Только что такое @mentions не понял.

Ну версия кода на Rust видимо хуже оптимизирована, чем версия на Go.

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

Люди хотят асинхронный IO.
На сишечке конечно можно этим заниматься, но придётся много писать и вероятность прострелить себе ногу значительно возрастает.

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

Да, об этом они тоже пишут, что пока оптимизацией особо не занимались. Начали писать код, емнип, весной 2019.

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

Странно: если усреднить нагрузку на процессор, то, похоже, получится, что go-версия в среднем потребляет меньше ресурсов.

Так, вроде средняя выше у первой rust-версии, когда они увеличили кэш(что с го приводило к увеличению времени фризов), то, судя по графикам, нагрузка упала в 2 раза по сравнению с первой версией.

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

Но найтли в продакшене… так себе идея.

Любая версия она найтли. От не найтли отделяет только количество тестов проведённых. Так что если оттестируют, а они должны тестировать, то норм же.

turtle_bazon ★★★★★
()

Чем бы хипсетры не тешились... Могли бы и на Жабе сваять свой бэкенд и не мучаться.

Valeg ★★★
()

Discord переходит с Go на Rust

Правильный выбор!

th3m3 ★★★★★
()

Проблема с GC есть во всех языках с GC. Чему тут удивляться?

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

Могли бы и на Жабе сваять свой бэкенд и

.. также страдать от фризов GC. Там где-то, то ли в статье, то ли в обсужденях на реддите, они писали, что кроме перехода Go -> Rust сделали переход от БД на жабе на БД на плюсах.

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

Ну заодно может помогут разработчикам rust отработать async.

При этом их основная аудитория геймеры очень критична к перебоям связи и всяким сюрпризам.

torvn77 ★★★★★
()

Ну, а в языках без GC есть свои проблемы, например, фрагментация памяти. Как говорится: «палка о двух концах» или у «медали две стороны».

dave ★★★★★
()

В моем понимании GC и HighLoad вообще слабо совместимы.

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

Остаётся только непонятным, почему перед переписыванием они не проверили на новых версиях Go? Если это обусловлено жаждой чего-то нового, то ладно.

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

Подколоть хотел? Как говорится: «блажен, кто верует»

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

Про Go не знаю, но в Java в разных аллокаторах точно есть, но при большой размерности задаче это ей не особо помогает...

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

Обалденный ЯП. Сегодня у нас так, завтра эдак. Новая версия вдруг стала быстрее, а более новая версия станет медленнее. Нафиг надо Сегодня одно, завтра другое.

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

В Java да, а вот про Go не уверен. Просто смущают высказывания вида «зачем думать о памяти, для этого есть GC», которые очень часто проскакивают. А то, что GC бывают сильно разные - люди забывают. GC в Go довольно примитивный и заточен под низкие задержки.

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

А чтобы им пользоваться больше не нужно ставить nightly компилятор?

Я думаю на данном этапе нет. Все важное в stable. Пару особенно упоротых веб-фреймворков вроде хотят nightly, но уже можно обойтись.

Там еще в nightly как я заметил экспериментируют с отключением оптимизаций как ни странно, у меня всякие выхлопы ассемблера бывало на nightly выдавали очень тупой код. Пару раз, опять же, может это не правило, просто видел пару случаев и был удивлен

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

Только что такое @mentions не понял.

Когда ты в чатике пишешь @username, то username получает об этом уведомление

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

Вполне может быть на определенном коде. Если в Rust они дергали деаллокацию сильно много, а в Go просто оставляли мусор. Оплата потом - скачком в latency. Бесплатного сыра не бывает, они выбрали то что для них важно.

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

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

vertexua ★★★★★
()

TL;DR проблема с GC в Go 3-x летней давности

Через три года

TL;DR проблема с Unsafe в Rust 3-x летней давности

перешли на С + gcc + POSIX + SDL2

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от dem

Так в любых языках.

Строки в C++11, например, это уже не те же строки, что в C++98.

grem ★★★★★
()

а когда оно с электрона на го перешло?

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

позабавило их «had no latency spikes!» при средней большей нагрузке на процессор.

та самая сборка мусора?

Bad_ptr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.