LINUX.ORG.RU
ФорумTalks

Статистика Rust в Android (в 1000 раз меньше плотность ошибок доступа к памяти)

 ,


0

2

Google делится статистикой разработки на Rust под Android: https://security.googleblog.com/2025/11/rust-in-android-move-fast-fix-things.html

Пишут, что в 1000 раз меньше ошибок доступа к памяти, по сравнению с кодом на C и C++. Также в 4 раза сократилось количество откатов релизов и на 25% сократилось время ревью.

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

Ответ на: комментарий от snake266

Еще полосатые programming socks (чулки), минимум по колено

А такие есть? Блин я бы летом такие прикупил, только компрессионные и почти по яйца.

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

Статистикой можно крутить как угодно.

Воистину! Спецом дефларировался в части раст на обычном «Hello World». Время конпиляции:

time rustc 1.rs
real	0m0.483s 
А теперь C
time gcc 1.c
real	0m0.271s
И это понятно оказывается по размеру бинарников.
Rust: 456280
450 KB на println!(«Hello World»)? Вы наверное шутите... Или не шутите? Полметра на какой-то «Hello World»!
На C это 8440.
Итого: Время конпеляции проигрывает цешеке. Размер получаемых бинарников тоже.

anc ★★★★★
()
Ответ на: комментарий от i-rinat

Rust он как бронежилет. Добавляет громоздкости, увеличивает шансы на выживание. Но это не аура неуязвимости. Бежать в нём прямо под обстрел — всё ещё плохая идея.

Преклоняю колени за такую формулировку!

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

В Rust нет исключений в том виде, как в плюсах, яве. Вместо этого Rust использует механизм паники и восстановление через Result/Option, что соответствует его философии zero-cost abstractions и управлению ошибками на уровне типов.

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

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

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

Паника - это размотка стека, а Result/Option - это монадические типы.

ratvier ★★
()

на 25% сократилось время ревью.

Я тоже так делаю, когда мне впадло чужую лапшу читать. А как колеги начали тесты гопотой генерить то вообще перестал их даже смотреть.

urxvt ★★★★★
()

В тыщу раз меньше плотность ошибок доступа к памяти (т.е. их теперь по всему проекту раскидало?)

Графики я дам.

Всё потому что теперь раст в исходниках.

Исходники я не дам.

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

Вопрос на миллион: что сделает Раст (или любой другой ЯП), при выходе за пределы массива?

Чиво?

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

А разве в Rust нет обработки исключений?

Исключения в Rust называются паниками. При сборке программы можно выбрать одно из двух поведений. Первый вариант аналогичен исключениям: раскручивается стек, этот процесс можно прекратить (аналог catch). Второй вариант просто вызывает abort() в месте возникновения этой паники. Панику принято использовать для ошибок, которые обработать затруднительно, к примеру выход на пределы массива. Для ошибок, которые вероятно будут обработаны, к примеру при открытии файл не найден - используется монада Result.

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

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

Решил загуглить, оказалось, что тривиально решаемая проблема, которая возникает только с макро println(), и которая решается несколькими способами.

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

Chiffchaff
() автор топика
Ответ на: комментарий от PPP328

Если ты про макрос println то очень правильно делает.

Для сравнения - 99.99% программ на C кривые и не проверяют результат, возвращаемый printf и тд.

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

99.99% программ на C не падают, если нужно вывести лог, а выводить некуда (как, например,в виндовых сервисах)

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

Т.е. они работают некорректно. Это, конечно, очень плохо.

vbr ★★★★★
()

Пишут, что в 1000 раз меньше ошибок доступа к памяти, по сравнению с кодом на C и C++. Также в 4 раза сократилось количество откатов релизов и на 25% сократилось время ревью.

На 10 см. увеличился член.

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

Растоджентльмены доверяют друг другу.

Ага, ведь ревью кода и должно основываться только на доверии)))))

Sm0ke85
()

Ну, т.е. гугловские олимпиадники в 21 веке внезапно обнаружили, что на ЯП из 70-х лучше не кодить. Сколько их ещё открытий чудных ждёт. Кстати, а чего не на голанг переписывают андроид? Не скрепно как-то.

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

Само собой инструмент. Но один инструмент дорабатывали 50 лет, он оброс опытными разрабами, специалистами, а другому 15 лет и его никто нихрена не знает. На него нет готовых модулей.

У тебя уже наработаны шаблоны мышления до механизма, а тут хоп, и все чуток иначе.

Вот представь, ты всю жизнь копал картоху лопатой, а потом тебе дали вилы - копай. Ты так же будешь ими работать? Инструменты разные, опыт разный.

Или копал ты всю жизнь траншеи лопатой и ломом, а тут тебе дали экскаватор. Инструмент же? И то инструмент и это. Но есть нюансы. Ты будешь на нем работать сразу эффективно?

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

Вот представь, ты всю жизнь копал картоху лопатой, а потом тебе дали вилы - копай. Ты так же будешь ими работать?

Вот не поверите, но да. Я без шуток, копал как лопатой так и вилами. Все зависело от ситуации, где-то лопата, где-то вилы. И это всё на одном 6-ти соточном участке, а не в поле.
ЗЫ Раз уж вы упомянули лом, то они тоже разные, сплавные коих большинство при определенных условиях, совсем не сложных условиях, как показала практика гнуться, цельностальные нет, но они тяжелые падлы. Т.е. лом лому также рознь.

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

Ну так ты копал и тем и тем. А теперь представь всю жизнь лопатой, а потом дали вилы.

Я когда 11 лет назад начал копать сам картоху тут у себя, я первым делом угробил четыре лопаты подряд. Ну ломались они у меня без опыта. А это просто банальная лопата.

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

ЗЫЫ «Или копал ты всю жизнь траншеи лопатой и ломом, а тут тебе дали экскаватор. Инструмент же? И то инструмент и это. Но есть нюансы. Ты будешь на нем работать сразу эффективно?»
Даже если вы всю жизнь копали экскаватором A, то это не значит что вы сможете также эффективно копать и на экскаваторе Б без подготовки. Но есть нюанс, вы знаете особенности копания экскаватором.

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

Ну так ты копал и тем и тем. А теперь представь всю жизнь лопатой, а потом дали вилы.

Теже только сбоку.

Я когда 11 лет назад начал копать сам картоху тут у себя,

Вот теперь кажется понимаю вашу беду, неподготовленный вышли. В том смысле стоите на участке и чешите репу «а как же её копать-то теперь»

я первым делом угробил четыре лопаты подряд.

В скальник сажали или лопаты с авито по объявлению брали?

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

Дури много, мозгов мало. Там же рычаг. Осень, земля уже утрамбована. Чуть сильнее нажмешь - сломаешь или черенок или лопату. Вот они и ломались.

Теперь то я сначала подкапываю слегка, лучше с двух сторон. Потом уже можно выкапывать. Лопаты по 2 года живут. А то и три.

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

Дури много, мозгов мало. Там же рычаг. Осень, земля уже утрамбована. Чуть сильнее нажмешь - сломаешь или черенок или лопату. Вот они и ломались.

Ну за черенок хоть понятно, его заменить можно, но лопата эт перебор, точно уг какое-то брали.
Хотя и черенок конечно тоже уг. Черенки «маде ин та страна» до сих пор робят.

Теперь то я сначала подкапываю слегка, лучше с двух сторон. Потом уже можно выкапывать. Лопаты по 2 года живут. А то и три.

Лопата на «А то и три» года... мой мир точно не будет прежним. Это какая-то одноразовка, зачем такие брать? Вангую что они и заточены не очень.

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

Лопат тут всего три вида: рельсовая сталь (они хрупкие и ломаются - трескаются), если нажать. Из железа без пометок - эти мягче и гнутся, если сильно перестараться. И третий тип - из фольги. Эти гнутся пальцами (не преувеличение).

Я не встречал пока лопат, которые не ломались бы. Это ощущается при первом же и спользовании. Втыкаешь в землю, чуть тянешь за черенок и ощущаешь предел лопаты. Опыт набрался, чувствую уже. Если воткнуть до предела и потянуть достаточно сильно - сломается любая. Нерушимых лопат нет.

Ну и мне не одну сотку перекопать. У меня одной картохи 10 соток. Это 2,5-3000 кустов.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)

Когда уже эти ретардорасты угомонятся?

cdtemp
()
Последнее исправление: cdtemp (всего исправлений: 2)

Дырок в раст меньше. Зато какой диаметр

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

Лопат тут всего три вида: рельсовая сталь (они хрупкие и ломаются - трескаются), если нажать. Из железа без пометок - эти мягче и гнутся, если сильно перестараться. И третий тип - из фольги. Эти гнутся пальцами (не преувеличение).

Жуть какая-то. Дожили блин до оптимизации... Хоть выходи на улицу с предложением «лопаты вечные, не гнуться не ломаются, пальцем не протыкаются», у нас парочка из нержи с черенками которые не осилили сломать за 20 лет использования начиная с момента «поднятия целены» ака глина, сами лопаты тонкие корни рубят только в путь, а мышей разносят на куски ( это я про вариант попал при перекопке на мышиное гнездо и быстренько их пошинковал пока не разбежались)
А купить что-то нормальное невозможно?

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

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

Это ты еще не знаешь какие грабли (а других не продают). Там прихвачено чуууть чуть сваркой в двух местах. Используются обычно 1-2 раза. Потом эти места отваливаются и покупай новые. Ну и железо там… ну там не железо - там патентованный сплав из козьего помета и пластилина.

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

А за год там слой ржавчины в милиметр

А-хре-неть... Ржавчина в миллиметр на лопате... у нас даже на старых давно не используемых такого никогда не наблюдалось... а тут за год.

Это ты еще не знаешь какие грабли

Мне лопаты хватило.

ну там не железо - там патентованный сплав из козьего помета и пластилина.

Шикарная формулировка!

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