Size: a a a

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

2020 August 31

V

Vladimir in Rust — русскоговорящее сообществo
И делать выводы из профилирования)
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
/bin/cat
все-таки хочется сделать "blazing fast"
Blazing fast, but incorrect - супер обмен
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
/bin/cat
все-таки хочется сделать "blazing fast"
У тебя правда возникла проблема с производительностью в этом месте? Потому что если нет, то не заморачивайся.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Emmanuel Goldstein
У тебя правда возникла проблема с производительностью в этом месте? Потому что если нет, то не заморачивайся.
Думаю о том, чтобы полностью отказаться от выделений в куче при чтении и записи
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
/bin/cat
Думаю о том, чтобы полностью отказаться от выделений в куче при чтении и записи
По идее, ты можешь сделать небольшую обертку над UnsafeCell, которая предоставляет методы
with(f: impl FnOnce(&T) -> R) -> R
with_mut(f: impl FnOnce(&mut T) -> R) -> R
И она будет безопасная
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну или Cell можно для этого использовать.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Cell чисто теоретически делает немного лишней работы, но по идее оптимизатор должен ее выкинуть.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Mikail Bagishov
По идее, ты можешь сделать небольшую обертку над UnsafeCell, которая предоставляет методы
with(f: impl FnOnce(&T) -> R) -> R
with_mut(f: impl FnOnce(&mut T) -> R) -> R
И она будет безопасная
Типо ссылка дропнется?
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Ну т.е. у нее конкретное время жизни
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
/bin/cat
Типо ссылка дропнется?
источник

Э

Эрик in Rust — русскоговорящее сообществo
with_mut надо было &mut self чтобы брал делать.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Разве это не приводит к callback hell?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
То есть пользователь указывает функцию, которая вызовется с этой ссылкой. Когда замыкание завершится, ссылки уже не будет, останутся только данные сделанные на основе этой ссылки.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
local key.with(|f| f.with_mut())
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ты можешь написать функцию, которая два слоя коллбэков сведет к одному
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Эрик
with_mut надо было &mut self чтобы брал делать.
Зачем?
LocalKey почему-то &mut-ы не отдает.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Mikail Bagishov
Зачем?
LocalKey почему-то &mut-ы не отдает.
Ну или Cell обернуть в тредлокал.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Mikail Bagishov
Ты можешь написать функцию, которая два слоя коллбэков сведет к одному
Чем это отличается от mut ссылки внутри первого же замыкания?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну это примерно Cell и есть
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
/bin/cat
Чем это отличается от mut ссылки внутри первого же замыкания?
Тем что мы жестко контролируем их лайфтаймы
источник