Dmitry
@aragaer дай последнюю версию
Alexander
[nix-shell:~/workspace/myself/experiments/special-1]$ wgetpaste orig.py
Your paste can be seen here: https://paste.pound-python.org/show/Iti8KHHWAVIgVg3Ft5nA/
eahqzsr
Мелкий файл чисто для забегов на скорость.
Alexander
@iamweasel ^
Aragaer
O3 чот вааще ничего не дало
a66ath
2.81
Dmitry
уже дохрена работает
Dmitry
вырубать?
Aragaer
$ time ./prog <in.txt >out.txt
Got 129998 bytes
real 0m11.823s
user 0m8.356s
sys 0m1.036s
aragaer@stronghold:/tmp$ cc -o prog -O3 prog.c
aragaer@stronghold:/tmp$ time ./prog <in.txt >out.txt
Got 129998 bytes
real 0m11.741s
user 0m8.372s
sys 0m0.972s
Dmitry
запусти pypy для референса
Dmitry
нашел?
Alexander
0.71s
Dmitry
@qnikst это для твоего последнего варианта?
Alexander
а не, там я накосячил
Dmitry
ты можешь там буферизацию абстраги
Dmitry
ок
Alexander
последний работающий 1с
Dmitry
что-то у меня prog.c вообще ушел в себя
Alexander
с честным dump
Dmitry
скоро минуту будет
Dmitry
1.19
Dmitry
1m19s
Dmitry
прервал
Aragaer
я примерно могу сказать, что это можно было бы оптимизировать именно по работе с памятью
Alexander
вариант с realloc сейчас сделаю
Dmitry
где тут плюсовый? он всех рвануть должен
Aragaer
wc на out что показывает?
Aragaer
а, ну да, он честно читает из stdin
Aragaer
если он не написал даже про то, сколько байт он всосал, то проблема в этом месте
Dmitry
./fuck.cc: In function ‘int main()’:
./fuck.cc:17:18: error: ISO C++ forbids declaration of ‘a’ with no type [-fpermissive]
for(const auto& a : as) {
Dmitry
g++ надо обновлять или ключ есть?
Dmitry
@aragaer он всосал
Aragaer
что-то вроде --std=c++11
Dmitry
dmz@zen ~/tmp/bsfuck $ time ./prog < ./49zGQ6Zt.txt > /dev/null
Got 129998 bytes
Aragaer
тогда там можно раскомментить вывод номера строки
a66ath
У меня prog.c не собрался
Alexander
так я похожу скоро всалю спать, завтра почитаю и положу все хорошее в гист
Alexander
@iamweasel мою сишку нашёл?
Aragaer
у меня на компе 8 секунд
Dmitry
плюсы нормуль
dmz@zen ~/tmp/bsfuck $ time ./a.out < ./49zGQ6Zt.txt > /dev/null
real 0m3.675s
Dmitry
по крайней мере выжили
a66ath
Ага
Dmitry
в три раза хуже хаскеля, но работают
Dmitry
ща проверю корректность
Aragaer
да, в prog.c есть точно один варнинг
Dmitry
неа
Alexander
о, поправил
a66ath
8.57
Alexander
сейчас бы ещё константы для кол-ва строк убрать
a66ath
Что поправил?
Dmitry
размер и хэш того, что генерит плюсовая прога - не совпадает
a66ath
Где?
Alexander
@iamweasel 8.57 моя сишка?
Alexander
или prog.c?
Dmitry
@iamweasel переводов строк нет
a66ath
prog.c
a66ath
У меня?
a66ath
Я добавил уже
Alexander
https://pastebin.com/E7gVniNe
Alexander
вот моя сишка
Alexander
можно ускорить увеличив CHUNK_SIZE
a66ath
1.70s твоя
a66ath
8+ это prog.c
Dmitry
там в плюсах что - одна мега-строка создается?
Dmitry
размером с весь выхлоп?
a66ath
Всрато, да?
a66ath
Ну да
a66ath
Так не делать?
Dmitry
это фиаско
Dmitry
сдохнет
a66ath
Почему?
Dmitry
то то у меня ноут окочуриться хочет
Dmitry
шибко много
a66ath
Сча пофикшу
Aragaer
наверно надо использовать не тупо printf, а более умную буферизацию для вывода 8)
Dmitry
поправил, запущу щас, но медленно
Alexander
так сишники
Alexander
как мне каждую chunk_size'дтую итерацию что-то умное делать
Aragaer
я боюсь, что изза ньюлайна вся буферизация printf идет нафиг
Alexander
но не на первую