eahqzsr
A64m
если немного строк хранить, то легко может быть медленнее
но при сотнях тысяч коротких строк и больше дерево будет адово тормозить
Ilya
Alexander
@eahqzsr там обычные строки?
eahqzsr
Ну мне вообщет на миллионы надо.
Ilya
мейнтнеры хабр что ли читают? =)
Alexander
@Masteroid ну вроде особо никто не рвал
Alexander
сразу сказали что не так и применив пару простых вещей получили тоже или лучше
Alexander
потом уже игрались
Ilya
ну так уж и "сразу"
Ilya
к тому же я ничего не говорю про конкретно вас
Danila Matveev
Ilya
я говорю, что если писать статью, то надо определиться с посылом
Ilya
посыл "как мы обгоняли однострочник на питоне" выглядит не очень
Alexander
000a это что?
Alexander
\n?
A64m
впрочем, может дерево в компакте сейчас и лучше будет
A64m
тут недавно был блогпост в котором хаскелист пытался Го обгонять и даже подумал что обогнал, но оказалось, что он неправильно время измерял
Dmitry
лучше статью "как мы раскидали вычисление по N процам" или "как мы запилили вычисление на кластере за 200 строк"
Alexander
@Masteroid строков там примемрно одинаково
Alexander
а как мы pypy обгоняли ещё можно
Alexander
или что-то типа "о чем надо помнить если вы пишите однопоточную числодробилку"
Alexander
[qnikst@nixos:~/workspace/myself/experiments/bug]$ ./test-case < test2.txt
mygfc
[qnikst@nixos:~/workspace/myself/experiments/bug]$ ./test-case < test.txt
5tg3emygfc
[qnikst@nixos:~/workspace/myself/experiments/bug]$ hexdump test2.txt
0000000 796d 6667 2063 7435 3367 0d65 000a
000000d
[qnikst@nixos:~/workspace/myself/experiments/bug]$ hexdump test.txt
0000000 796d 6667 2063 7435 3367 0a65
000000c
eahqzsr
Так ведь однострочник на go или rust или еще чем-нибудь подгонят который будет еще быстрее.
Dmitry
в данном случае не факт
Alexander
ну на c или rust можно
Alexander
но тогда и у нас есть куда идти : ]
Dmitry
тут же оно впирается в IO
Dmitry
go точно такой же garbage collected
Dmitry
rust - да
Alexander
ну у си и раста нету трат на gc
Dmitry
теоретически может
A64m
да и тут уже трат практически нету
Dmitry
я каждый раз порываюсь написать что-то на раст, но кончается одним из двух - или норм. на хаскеле, или всё равно надо на си писать
eahqzsr
Оно впирается в IO-либы по процу, скорее так.
Dmitry
так я никак раст и не могу куда-то припахать
Dmitry
по розетте пошарился - код на нём мне не так уж и нравится, кстати
Dmitry
очень уж много писанины
A64m
да чтоб быть быстрым как си надо зиллионы человеколет потратить как в си. раст никогда быстрым как си не будет. будет быстрый как средний язык с ллвм бекендом
A64m
будет со свифтом каким-нибудь соревноваться
Dmitry
надо всё так посмотреть на код, с которого всё начиналось
Зигохистоморфный
Или котлин нейтив
Dmitry
что с ним не так-то было.
Dmitry
что бы хоть какую-то мораль извлечь
Ilya
A64m
если просто в первоначальный код билдер добавить и гц потюнить то он где-то раз в 7 уже ускорится, остальное добирание каких-то крох
Anonymous
>как средний язык
Anonymous
кк
Dmitry
"используйте StringBuilder" - практически первый совет, который давали тем, кто начинал учить джаву в 2002-ом году
Dmitry
StringBuffer
Danila Matveev
A64m
@anarchostatist ну в него никогда не будут вкладывать столько труда сколько в кланг, меньше чем в свифт и побольше чем в Ди, но не принципиально. Конечно больше, чем в млтоны всякие, вот их он будет эффектно побеждать
Anonymous
спекуляции не нужны
A64m
это ЭКСПЕРТНАЯ ОЦЕНКА
A64m
@voidlizard только вот в яве то наверняка конкатенация строк так и работает, так что аналогичная ситуация и не возникла бы
Dmitry
я представляю, сколько надо написать на жабе для того, что бы воспроизвести нашу ситуацию
A64m
впрочем этот билдер с явовским мало общего имеет
Dmitry
и что на комп поставить
Dmitry
и отказываюсь от этой мысли
Dmitry
вот если кто-то напишет на расте было бы гран-мерси
Dmitry
тупо самую простую версию
Dmitry
ау, есть кто-то кто владеет? на х-ле первый вариант писался за пару минут
Ilya
Dmitry
https://github.com/fitzgen/rust-words/tree/master/src
Dmitry
вашу ж офелию. вот поэтому мы и пишем на хаскеле
Dmitry
вот особенно поэтому https://github.com/fitzgen/rust-words/blob/master/src/word_reader.rs
Anonymous
Dmitry
считать пары "префикс суффикс" из stdin, для каждого префикса сгенерить все суффиксы и записать все получившиеся пары в stdout
Anonymous
в той репе треш какой-то
Anonymous
ээ, очень многозначно
Danila Matveev
декартово вроде
Dmitry
ок, переписать питоновый скрипт на расте
Anonymous
префикс это до пробела?
Anonymous
какой
Dmitry
https://gist.github.com/voidlizard/2c986d1892d87d90bbcc1126ca72dbff
Dmitry
тут нет никакого подвоха, просто интересно, как будет работать первый попавшийся код на расте, который дело делает
Ilya
префикс это до пробела?
считать файл (N строк)
pref1 suff1
pref2 suff2
...
prefN suffN
вывести файл (N^2 строк)
pref1suff1
pref1suff2
...
pref2suff1
pref2suff2
...
Ilya
как-то так было