Size: a a a

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

2020 November 21

/

/bin/cat in Rust — русскоговорящее сообществo
в ГЦ языке достаточно создать циклические зависимости и забыть их удалить, чтобы память текла
источник

А

Алексей in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Да нет, в языке с ГЦ часто легко утечь память
Тонны способов
В языке без ГЦ гораздо проще. Все способы как в языках с ГЦ плюс ещё куча других и более лёгких
источник

d

diabolo in Rust — русскоговорящее сообществo
Timur Burnashev
Time elapsed in test_json_serde() is: 45.345130505s
Time elapsed in test_json() is: 16.616074177s
ну не знаю, у меня что на simd, что на серде результаты примерно одинаковые, вот это с чистым serde (твой код без изменений)
diabolo@veles(master #%):~/src/rust/test/testjson[1]$ hyperfine --warmup 2 target/release/testjson
Benchmark #1: target/release/testjson
 Time (mean ± σ):     14.590 s ±  0.201 s    [User: 16.317 s, System: 0.012 s]
 Range (min … max):   14.430 s … 15.148 s    10 run
источник

А

Алексей in Rust — русскоговорящее сообществo
/bin/cat
в ГЦ языке достаточно создать циклические зависимости и забыть их удалить, чтобы память текла
нет
источник

А

Алексей in Rust — русскоговорящее сообществo
как раз таки гц и нужен для автоматического удаления циклических ссылок (если на них нет достижимых ссылок, разумеется)
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Алексей
как раз таки гц и нужен для автоматического удаления циклических ссылок (если на них нет достижимых ссылок, разумеется)
Не могу сказать, насчёт java, но в php очень хорошо утекает память. Когда разработчик забыл удалить циклические зависимости в деструкторе обрабатываемого подключения
источник

E

Eugene in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Да нет, в языке с ГЦ часто легко утечь память
Тонны способов
в haskell часто память течёт?
источник

А

Алексей in Rust — русскоговорящее сообществo
/bin/cat
Не могу сказать, насчёт java, но в php очень хорошо утекает память. Когда разработчик забыл удалить циклические зависимости в деструкторе обрабатываемого подключения
не знаю что там в пхп, он вообще был очень криво сделан во многих аспектах (да и сейчас не особо прямой)
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Eugene
в haskell часто память течёт?
Да
источник

А

Алексей in Rust — русскоговорящее сообществo
но вообще весь смысл гц как раз в корректной обработки циклических ссылок без всяких дополнительных усилий со стороны программиста
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Алексей
не знаю что там в пхп, он вообще был очень криво сделан во многих аспектах (да и сейчас не особо прямой)
Ну в джаве тоже самое будет, нет? Подсчет ссылок не должен сильно отличаться в ГЦ языках
источник

А

Алексей in Rust — русскоговорящее сообществo
/bin/cat
Ну в джаве тоже самое будет, нет? Подсчет ссылок не должен сильно отличаться в ГЦ языках
Подсчёт ссылок - это несколько другое. В каком-то смысле это ортогонально гц. Потому что есть языки с подсчётом ссылок, но с гц для удаления циклических ссылок, который подсчёт никак не обнаружит. Но в основном в гц вообще ссылки не считаются никак.
источник

А

Алексей in Rust — русскоговорящее сообществo
Обычно гц периодически запускается, ходит по всему графу, отмечая какие объекты достижимы в программе, а потом удаляет недостижимые.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Ну все равно это проблема. Обычно она будет разрешена при выходе из программы, а не во время выполнения
источник

А

Алексей in Rust — русскоговорящее сообществo
/bin/cat
Ну все равно это проблема. Обычно она будет разрешена при выходе из программы, а не во время выполнения
она будет разрешена при запуске гц собственно, потому что недостижимые объекты он пометит как недостижимые и удалит даже если есть циклические ссылки
источник

А

Алексей in Rust — русскоговорящее сообществo
То есть гц много чего снимает с программиста. Правда очень не бесплатно разумеется. Потому и языки без гц (такие как раст) в некоторых задачах очень нужны.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Принудительный запуск гц не происходит так часто
источник

А

Алексей in Rust — русскоговорящее сообществo
/bin/cat
Принудительный запуск гц не происходит так часто
Обычно да. Но когда происходит, то вся программа стопается на время работы гц. И паузы там могут быть немаленькими.
источник

RS

Roma S in Rust — русскоговорящее сообществo
/bin/cat
Принудительный запуск гц не происходит так часто
что такое "принудительный запуск гц", лол?
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Roma S
что такое "принудительный запуск гц", лол?
Можно его запустить
источник