Size: a a a

Rust — русскоговорящее сообществo

2020 August 29

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Optick - a profiler for rust

https://crates.io/crates/optick

#performance #profiler
источник

/

/bin/cat in Rust — русскоговорящее сообществo
А он умеет в графы?
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
/bin/cat
А он умеет в графы?
графы это не к профайлеру
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
perf выдает perf.data, который можно как хочешь визуализировать
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
https://github.com/flamegraph-rs/flamegraph
Вот тебе пример визуализации
источник

S

Sergey in Rust — русскоговорящее сообществo
Hara Red
Скоерее это должно значить что ваш Sender уже дропнулся... А вот наличие результатов в нем - любопытно.
Нашел траблу
Просто было tx.send(data);
А должно быть tx.send(data).await;
Странно что дебагер CLion показывал наличие в channel данных
источник

Э

Эрик in Rust — русскоговорящее сообществo
Sergey
Возник затык с tokio channel
В закидываю данные tokio::channel (и они точно приходят), но не получается их вытащить из tokio Receiver (не заходит в сам блок while)
Может я что-то не так делаю?
А почему бы просто не использовать std, crossbeam или flume ченнел, если там от асинка один .await?
источник

/

/bin/cat in Rust — русскоговорящее сообществo
А такой граф нельзя получить?
источник

S

Sergey in Rust — русскоговорящее сообществo
Эрик
А почему бы просто не использовать std, crossbeam или flume ченнел, если там от асинка один .await?
там веб сервер + grpc обмотанные на tokio
источник

Э

Эрик in Rust — русскоговорящее сообществo
Sergey
там веб сервер + grpc обмотанные на tokio
И что? .send() не блочится, блочится только .recv(), но он и в данном случае блочится вполне успешно.
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
/bin/cat
А такой граф нельзя получить?
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Эрик
И что? .send() не блочится, блочится только .recv(), но он и в данном случае блочится вполне успешно.
Ну так он же поток не блокирует
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
В этом и смысл асинка
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя .send() не блочится только на unbounded, а если там bounded, то токийский канал лучше.
источник

V

Vladimir in Rust — русскоговорящее сообществo
Эрик
Хотя .send() не блочится только на unbounded, а если там bounded, то токийский канал лучше.
А чем токийский канал хуже? Имхо только создадите себе лишние проблемы.
источник

B

Bulba in Rust — русскоговорящее сообществo
serde_json падает в дебаге на переполнении а в релизе хз, тут зависает а в проекте выдавал вообще неверный жсон. Так происходит если в serialize_seq пихнуть размер Some(0) и все равно наполнить элементами. Это баг? По сути должен быть ассерт какой то у них.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=7368226ba8cb5af851d09912f193f260
источник

Э

Эрик in Rust — русскоговорящее сообществo
Bulba
serde_json падает в дебаге на переполнении а в релизе хз, тут зависает а в проекте выдавал вообще неверный жсон. Так происходит если в serialize_seq пихнуть размер Some(0) и все равно наполнить элементами. Это баг? По сути должен быть ассерт какой то у них.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=7368226ba8cb5af851d09912f193f260
Memory safe.
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Bulba
serde_json падает в дебаге на переполнении а в релизе хз, тут зависает а в проекте выдавал вообще неверный жсон. Так происходит если в serialize_seq пихнуть размер Some(0) и все равно наполнить элементами. Это баг? По сути должен быть ассерт какой то у них.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=7368226ba8cb5af851d09912f193f260
Так Some(0) означает что тебе хочется sequence на 0 элементов
источник

B

Bulba in Rust — русскоговорящее сообществo
Эрик
Memory safe.
источник

B

Bulba in Rust — русскоговорящее сообществo
Casual tears
Так Some(0) означает что тебе хочется sequence на 0 элементов
Да я прекрасно понимаю, но рассчитывал на более красивую ошибку особенно когда чтобы выяснить что это было пришлось закопаться в зависимости
источник