Anonymous
на Ofast и O3
分解物質
glibc тормоз
分解物質
щя
Loo
что вы делаете
Loo
?
Маjко
Юзай mmap
Vladimir
@anarchostatist есть файл для тестов?
Anonymous
да, секунду
Anonymous
https://www.dropbox.com/s/tjul7froasr6kvn/49zGQ6Zt.txt?dl=0
big
а зачем это?
Anonymous
че
Vladimir
лол
Vladimir
у меня исходный код выполняется ./target/release/test_stdout < ~/Downloads/49zGQ6Zt.txt > /dev/null 2.63s user 0.17s system 88% cpu 3.187 total
Vladimir
но я билли ➜ test_stdout git:(master) ✗ cargo build --release --target-cpu=native
big
че
) я имею ввиду откуда задача то
Anonymous
а
Anonymous
в хаскель чате началось, хз откуда
Anonymous
и попросили на расте написать
Anonymous
получилось медленнее чем решение на хаскеле
big
а лол
big
you have been nerd sniped
Vladimir
на выходе я так понимаю должна быть комбинация каждого с каждым?
Anonymous
да
Anonymous
вот на питоне на всякий случай #! /usr/bin/env pypy import sys w = [l.split(' ', 1) for l in sys.stdin] pref = [x[0] for x in w] suff = [x[1].rstrip() for x in w] for p in pref: print "\n".join([(p + s) for s in suff])
big
он тоже уделывает раст?
big
так блед
big
а сколько хаскел то выжимает?
big
нет
(sarcasm)
big
(сори за тупые шутки)
Anonymous
1.64с
Serg
Я не ценил лаконичность Питона пока не начал писать на Расте 😂
Anonymous
бля, там в оригинальном коде префикс с суффиксом перепутан
Vladimir
и че?
Anonymous
ну просто если кто-то на него ориентируется
Anonymous
😩
Anonymous
ну вот
Anonymous
еще убедитесь что там нет carriage return в выводе нигде
分解物質
щя
#include <string.h> #include <unistd.h> char buf[10000][2][6]; char obuf[110000]; int main() { read(0, buf, sizeof buf); char *o = obuf; for (int i = 0; i < 10000; i++) { for (int j = 0; j < 10000; j++) { for (int n = 0; n < 5;) *o++ = buf[i][0][n++]; for (int n = 0; n < 6;) *o++ = buf[j][1][n++]; } write(1, obuf, 110000); o = obuf; } return 0; }
Anonymous
здесь правильный порядок префиксов и суффиксов?
分解物質
я особо не менял
分解物質
думаю да
分解物質
проверь
Anonymous
не могу
Anonymous
а еще меня телефон затроллил λ localhost ~ → gcc clang-4.0: error: no input files
Vladimir
а на расте
Anonymous
А
Anonymous
оказывается нельзя хардкодить размеры(
分解物質
$ time ./a.out < /dev/zero > /dev/null real 0m0.415s user 0m0.408s sys 0m0.005s
$ time ./a.out < /dev/zero > /dev/null real 0m0.193s user 0m0.188s sys 0m0.004s заменил два мелких цикла на memcpy
Vladimir
он должен быть 10к^2 * 11 не?
Loyd
simd, видимо?
Vladimir
а, ты пишешь не всё сразу
Vladimir
тогда ок
Anonymous
так
Anonymous
в хаскель чате сказали надо без хардкодов
分解物質
в хаскель чате сказали надо без хардкодов
только кол-во сторок нельзя?
分解物質
размер строки фиксирован?
Anonymous
размеры слов тоже
Anonymous
есть вопрос к настоящим программистам вот у меня поток данных, он льется в программу каждые 100мс большими такими чанками, мне нужно каждый раз делать diff с предыдущим чанком и разницу лить в бд. что делать, если я не успеваю сделать diff, до того, как придет следующий чанк? лить всё в очередь? но ведь тогда она забьется просто и всё?
分解物質
конец узнать можно только встретив EOF?
Anonymous
@haskellru
պլհկ
^ this
Anonymous
то есть параллельить diff, улучшать его или переписывать на более быстрый язык? (сейчас написана на node.js лол)
Anonymous
на node.js трудно добиться хорошей скорости
Anonymous
но в общем в принципе ясно, только оптимизация, значит я правильно решил отказаться от js таки
պլհկ
зависит от сложности алгоритма диффа
Маjко
кек