Size: a a a

Конференция C++ Russia

2020 February 07

MM

Mikhail Matrosov in Конференция C++ Russia
Antony Polukhin
Странно
Надо закинуть ещё раз
источник

MM

Mikhail Matrosov in Конференция C++ Russia
источник

AP

Antony Polukhin in Конференция C++ Russia
Alexey Veselovsky
Кстати, примерно с тем же успехом могли бы на джаву заменить - там GC можно выбирать разные, в том числе и «реалтайм», который будет жрать CPU примерно как Раст обеспечивая стабильный лаг.

Это, кстати говорит о детских болезнях как Go (где нельзя легко менять GC и его настройки, коль проще оказалось проект на другом ЯП переписать), так и раста.
> который будет жрать CPU примерно как Раст обеспечивая стабильный лаг

Эээм... Там внутри GC сидит Гермиона с Маховиком Времени и отматывает время назад, чтобы GC не жрал CPU?
источник

AP

Antony Polukhin in Конференция C++ Russia
"реайлтайм" жрёт CPU как кадавр, но гарантирует стабильность лага
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Antony Polukhin
> который будет жрать CPU примерно как Раст обеспечивая стабильный лаг

Эээм... Там внутри GC сидит Гермиона с Маховиком Времени и отматывает время назад, чтобы GC не жрал CPU?
Я ж говорю - наоборот, он БУДЕТ жрать CPU. Больше чем обычно. Но лаг будет меньше от его работы
источник

AV

Alexey Veselovsky in Конференция C++ Russia
В обсуждаемой статье средняя нагрузка на CPU у раста выше чем у Go
источник

MM

Mikhail Matrosov in Конференция C++ Russia
Alexey Veselovsky
В обсуждаемой статье средняя нагрузка на CPU у раста выше чем у Go
_медианная_ :)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Этого можно было добиться и в джаве :-)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Mikhail Matrosov
_медианная_ :)
Ну да. Не максимальная
источник

AP

Antony Polukhin in Конференция C++ Russia
Alexey Veselovsky
В обсуждаемой статье средняя нагрузка на CPU у раста выше чем у Go
а есть объяснение почему? Не верю что это чисто из-за атомиков, скорее другие аллокаторы и иначе работает await
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Antony Polukhin
а есть объяснение почему? Не верю что это чисто из-за атомиков, скорее другие аллокаторы и иначе работает await
Надо разбираться в деталях тут. Но то, что подсчёт ссылок не самая эффективная стратегия сборки мусора с точки зрения средней/медианной нагрузки на CPU - вроде бы факт.
источник

K

Kirill in Конференция C++ Russia
Alexey Veselovsky
Ну дык на некоторых задачах (при некоторой реализации прикладного кода) в среднем подсчета ссылок будет дороже чем другие виды сборщиков мусора. У раста как раз подсчёт ссылок.
Но там ведь компайл тайм подсчёт ссылок через borrow checker. Который гарантирует только одну мутабельную ссылку в единицу времени.
Константные ссылки должны доказать что живут меньше чем мутабельная.

Все вырождается в аналог unique ptr
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Kirill
Но там ведь компайл тайм подсчёт ссылок через borrow checker. Который гарантирует только одну мутабельную ссылку в единицу времени.
Константные ссылки должны доказать что живут меньше чем мутабельная.

Все вырождается в аналог unique ptr
Нет. Описанное тобой - частный случай
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Честный подсчёт ссылок там тоже есть. И утечки памяти есть. Все нормально
источник

K

Kirill in Конференция C++ Russia
Alexey Veselovsky
Честный подсчёт ссылок там тоже есть. И утечки памяти есть. Все нормально
А как оно так?
Можно пример?
Без unsafe и вызова сишных биндингов естественно, это очевидные кейсы
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Kirill
А как оно так?
Можно пример?
Без unsafe и вызова сишных биндингов естественно, это очевидные кейсы
Везде где в с++ нужен не unique, а shared ptr
источник

K

Kirill in Конференция C++ Russia
Alexey Veselovsky
Везде где в с++ нужен не unique, а shared ptr
Я не о мотивации, а о технической реализации
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Kirill
Я не о мотивации, а о технической реализации
Я тоже
источник

ES

Egor Suvorov in Конференция C++ Russia
Kirill
А как оно так?
Можно пример?
Без unsafe и вызова сишных биндингов естественно, это очевидные кейсы
Arc<>, емнип, просто shared_ptr из стандартной библиотеки.
источник

K

Kirill in Конференция C++ Russia
Egor Suvorov
Arc<>, емнип, просто shared_ptr из стандартной библиотеки.
вот теперь ясно. спасибо
источник