Alexander
у @yellow_apple версия новая
Alexander
он обошёл мою утреннюю серьезно так
Alexander
эта _у меня_ быстрее работает чем его
Alexander
была война со сплайсом
Dmitry
я дайте ссылку?
Alexander
он работает но толку нету
Dmitry
или у вас там уже жесть началась? я краем глаза видет трешак, даже боюсь смотреть
Alexander
https://gist.githubusercontent.com/yellow-apple/69993c04f8d9afc0d72c56f27e55187f/raw/d55db70fedda2f8c5fde0992fad7ea781df806be/a.c
Alexander
это последняя @yellow_apple
Alexander
splice для сильных духом
Alexander
и каких-то других задач
Dmitry
dmz@zen ~/tmp/bsfuck $ time ./a.out < ./49zGQ6Zt.txt > /dev/null real 0m1.161s user 0m1.160s sys 0m0.000s dmz@zen ~/tmp/bsfuck $ time ./fu < ./49zGQ6Zt.txt > /dev/null fu2.py fuck fu.py dmz@zen ~/tmp/bsfuck $ time ./fixchunks < ./49zGQ6Zt.txt > /dev/null real 0m0.857s user 0m0.852s sys 0m0.004s
Dmitry
точно последняя?
Dmitry
моя значит лучше
Alexander
твоя 0.857?
Dmitry
да
eahqzsr
А по C чатик есть? Мож туда?
Dmitry
https://gist.github.com/voidlizard/4dd7941d98b557a39e251109340335bf
Dmitry
я завязываю. может завтра будут мысли, как до полсекунды утоптать
Alexander
секунду
Alexander
а 0ю82 это твоя или моя последняя?
Dmitry
это моя
Dmitry
твою последнюю давай сюда
Alexander
тогда секунду еще можно
Alexander
вот эта
Alexander
@voidlizard работает?
Dmitry
@qnikst md5sum не сходттся
Dmitry
dmz@zen ~/tmp/bsfuck $ ./qnikst3 < ./49zGQ6Zt.txt | md5sum 45be2772b13bcc8112eddd9f0672740c -
Alexander
ага тогда завтра
Dmitry
заменишь memcpy на свич как у меня, и все заработает так же
Dmitry
узкое место копирование, memcpy с константой расширяется в специализацию
Alexander
у меня же нету memcpy?
Dmitry
ну тггда у тебя худший вариант
Dmitry
компилятор умеет вставлять нужные специализации memcpy для разных размерностей
Dmitry
остальное всё мало влияет, большую часть времени оно проводит за копированием 5 байтных чанков
Alexander
ну да, но у меня несколько раз тупое копирование было лучше memcpy
Alexander
на этих длинах во всяком случае
Alexander
ладно, раз там специализации это прикольно, я не знал про такое
Dmitry
тут типа *(uint32_t*)dst = *(uint32_t*)src; и еще один байт дослать
Dmitry
будет самое то
Dmitry
но компилятор это сам делает когда видит memcpy(...,..., 5)
Dmitry
ну примерно
Alexander
да прикольно я обычно такое сам делал
Alexander
все понял, я и диот
Alexander
о да, круто стало
Alexander
@voidlizard пасиб прикольная тема
Alexander
https://paste.pound-python.org/show/DMGFJkxw53po79X6Vtep/
Dmitry
dmz@zen ~/tmp/bsfuck $ time ./qnikst4 < ./49zGQ6Zt.txt > /dev/null real 0m0.483s user 0m0.480s sys 0m0.000s
Dmitry
чорт, опять твой код быстрее
Dmitry
не пойму где
Dmitry
одно и тоже ведь
Alexander
ща ещё круче будет
Dmitry
куда уж
Alexander
блин
Alexander
https://paste.pound-python.org/show/Qp3Pdg1parDKS0pQqppr/
eahqzsr
Вертикальный предел
Alexander
он не идеально корректен, но наверное мне это простят
Dmitry
а что будет на больших токенах? скажем, разером эдак 1024 байта
Alexander
там нужно доп проверка при наполнении строки, что есть 8 символов в запасе
Alexander
@voidlizard где?
Dmitry
у тебя.
Alexander
а в чем проблема?
Alexander
там memcpy же теперь
Alexander
а в последнем или memcpy(_,_,len) или memcpy(_,_,8)
Alexander
хм
Alexander
но в последгем нужно проверки построже сделать при чтении, что у нас всегда есть 7 запасных байт
Alexander
и в буффере, но это не обязательно я там просто BUF_LEN+8 могу выделять
Alexander
@voidlizard или я пропустил проблему?
Dmitry
не, норм
Dmitry
просто эт возможный косяк, когда все углы срезаются
Alexander
у меня достаточно честное решение
Alexander
у меня даже write честный
Alexander
который проверяет что все действительно записалось
Alexander
так.. чозахрень
Alexander
у меня стало ОЧЕНЬ быстро
Alexander
https://paste.pound-python.org/show/fg5hdWv46KurkkDUdnxg/
Alexander
@voidlizard если не спишь - посмотри
Alexander
я не понял что произошло, но почему-то у меня в > /dev/null когда пишешьь стало 0.18
Alexander
хэш вроде тот