Маjко
Vladimir
Cuno
Vladimir
так он про системное в целом
Vladimir
че вы
Сережа
да я даже в паскале не могу, чо уж там
Vladimir
другое дело жавка
Anonymous
м
Маjко
другое дело жавка
Осилишь перечислить оптимизиции, которые применяет жавовский JIT и как они работают? 😂
Vladimir
где ты не паришься об оптимизациях, а надеешься, что твоя виртуальная машина не придет убирать мусор...
Маjко
Vladimir
еее Мемори лики
Vladimir
ну Лан тогда
Anonymous
че быстрее
(0..99999).for_each(|x| println!("{}", x));
for x in 0..99999 {
println!("{}", x);
}
Alex
Сережа
принтлн в стдаут буфферезируется наверн?
Anonymous
Anonymous
я только проснулся
Alex
Сережа
мерятся бенчмарками еще бессмысленне чем смотреть nim, мне это по нраву
Vladimir
let b = BufWriter::new(io::stdout());
for x in 0..99999 {
writeln!(b, "{}", x);
}
Anonymous
нене
Сережа
Йо, я слышал стдаут буфферезируемый, так что мы сделали еще один буфер, чтобы буфферезировать твой буфферизируемый стдаут
Vladimir
где ты это слышал
Alex
этожгениально
Сережа
ты не смотрел тачка на прокачку?
Сережа
с xzibit ом?
Vladimir
я про буферизируемый
Vladimir
стдаут
Сережа
это репер такой, черный
Сережа
в c++ cout - буфферезируемый, cerr - нет
Сережа
про раст я ничего не знаю
Vladimir
чет по параолимпиаде позавчерашней с++ не очень буферезируемый
Маjко
Маjко
Одинаково
Маjко
Я правда вывод убрал
Vladimir
нет
Vladimir
и тут итераторы быстрее
Vladimir
слава итераторам
Vladimir
смерть циклам
Anonymous
ура
Anonymous
пойду все на итераторы переписывать
Маjко
Iter Vult
Сережа
на c++ как и на джаве люди бабки зашибают, им некогда учавствовать в спецолимпиадах, вот хаскелл, раст - это да!
Маjко
А крестодети всё еще не уверены какой вывод буферизованный
Маjко
Че с них взять
Anonymous
Vladimir
ну async/await генераторы
Vlad
Главное что-нибудь куда-нибудь переписывать
Anonymous
а причем тут циклы
Сережа
stdout в вашем расте кстати тоже буфферизированый
adam
Сережа
https://doc.rust-lang.org/std/io/fn.stdout.html
...handle returned is a reference to a shared global buffer...
Vladimir
а причем тут циклы
смысле причем, асинк авейт, это про то, чтобы итераторы вернуть обратно в императивный стиль
Anonymous
ну
Сережа
на всякий случай, тут пацаны рассказывают как сделать небуфферизируемый https://www.reddit.com/r/rust/comments/6hoayo/how_do_i_write_to_stdout_without_line_buffering/
Anonymous
стоп
Anonymous
ааааа
Маjко
Точнее из-за RwLock
Сережа
в крестах cout - несинхронизированный
Маjко
Но буффер дефолтный все равно говно
Маjко
Vladimir
хех
Сережа
там вроде бы
operator«
- это оператор, говорят принтф быстрее
Anonymous
<<
Сережа
да
Anonymous
в расте тоже есть такой оператор
Сережа
или ты не про это?
Vlad
Да вродь наоборот как раз? << быстрее?
Vladimir
для целых точно быстрее
Vlad
По крайней мере задумка изначально была такая... А printf шаблон при каждом вызове парсит. Не то что раст!
Сережа
https://stackoverflow.com/questions/2872543/printf-vs-cout-in-c
Маjко
Ща микробенчмарки крестов еще пойдут
Маjко
Лол
Anonymous
impl std::ops::Shl<&str> for std::io::Stdout {
type Output = ();
fn shl(self, input: &str) {
writeln!(self, "{}", input);
}
}