Aragaer
если оно корректно работает на небольших, а на больших некорректно, то что-то тут не так
Anonymous
Aragaer
а времена работы и сравниваются на больших
Aragaer
кроме того, можно еще сравнивать стабильность работы на о-очень больших данных
Aragaer
то есть что оно банально не захлебнется от чего-то совсем большого
Ilya
ну это ж гиморой, а ради чего?
Ради локальности кэша:) Если он тут решает, конечно.
Насколько я понимаю, сейчас идёт N проходов по всей длине памяти (N суффиксов). Кэш используется только для префиксов.
Dmitry
да тут в IO затык
Dmitry
во всех остальных местах какие-то копейки наскребаются
Dmitry
кто первый сделал нормальную буферизацию вывода, тот и молодец
Aragaer
кэш префиксов не нужен, потому что мы очень долго работаем с одним префиксом
Dmitry
правда заруб уже за эти копейки и шел в конце
Ilya
Aragaer
а он большой и в кэш не влазит. Нужны быстрые переходы по суффиксам
Dmitry
не, тут я пас. задача того не стоит. в целом же это про то, как бороли выхлоп в stdout
Dmitry
и оказалось, что в си тоже шляпа
Dmitry
это, наверное, основная мораль всей истории
Aragaer
про IO у меня так и получилось - буферизация ускорила в 5 раз. Дальше уже работа с памятью и там было максимум на четверть
Ilya
Можно брать немножко префиксов, немножко суффиксов. Считать все пермутации. Потом брать ещё немножко суффиксов. Снова считать все пермутации. Это даст локальность кэша. Но порядок вывода будет уже другой.
Ilya
Я про это
Dmitry
инициатива наказуема
Ilya
Если здесь боттлнек в другом, то конечно смысла нет
Dmitry
есть есть желание провести вторую специальную олимпиаду по этой же теме - то всегда пожалуйста
Dmitry
я пас, и так почти не спал в итоге, следя за перипетиями
Aragaer
у наивной реализации ботлнек в буферизации вывода. Лечение это уже что-то не самое наивное
Alexander
void * - void * какого типа?
Aragaer
ssize_t 8)
Aragaer
на самом деле что-то вроде ptrdiff_t, но оно же
Dmitry
интересно, что за задача такая всё-таки
Dmitry
что надо гонять тривиальные данные через пайпы, а не генерить на месте
Alexander
вы не поверите
Alexander
я добавил printf("foo!") в фукнцию и код перестал сегфолтиться
Alexander
я ненавижу этот ваш си
Dmitry
хаха
Dmitry
лучше б vstream допилить
Dmitry
или там уже нечего?
Aragaer
8)
Dmitry
может, удастся раст прищемить или уже нереально?
Dmitry
в жопу си. надо раст впарить роутерщикам, и можно си закапывать
Alexander
@voidlizard я попробую, но маловероятно
Dmitry
спляшу на могиле, блин. с 1995 года на нем пишу, с 1996 года его не люблю
Alexander
на моём ноуте разница уже в 3 раза
Alexander
блин я ВОООБЩЕ НЕ ПОНИМАЮ ПРИКОЛА
Dmitry
особенных высот нелюбовь достигает во вреия ковыряния ядра
Dmitry
стек рушишь
Dmitry
куда-нить пищешь мимо тазика, лишний вызов на стеке что-нить меняет, поэтому случайно не падает
Dmitry
как-нибудь так дела обстоят, скорее всего
Alexander
если я хочу массив длин которые я беру pointer - pointer
Alexander
то какой у него тип ssize_t * foo?
Ilya
Есть же sort в баше
Alexander
блин!
Ilya
То же самое
Alexander
realloc же в байтах размер берём
Ilya
Был sort, а это prod
Aragaer
а мне кажется или в олимпиаде не участвовал го?
Dmitry
ну будет в лучшем случае на уровне mono
Dmitry
там у них хоть не boehm я надеюсь?
Aragaer
лично я С люблю, особенно по сравнению с плюсами. За то, что теплый ламповый и без закулисной магии
Aragaer
потому что всякие "зубры" понапишут на плюсах, а ты сидишь и разбираешься через пять уровней наследования, почему a = b + c делает не то, что ты от него ожидаешь
Vadim
Ребчт, а ocaml в этой олимпиаде пробовали?
Dmitry
неа
Dmitry
запили?
Dmitry
в принципе, тут ни SMP ни арифметики не надо, окамл будет выглядеть ок
Dmitry
вангую не лучше vstream правда
Vadim
В 1поточном режиме с оптимизирующим компилятором он должен быть близок к С и Расту по скорости, а по времени написания к Хаскелю.
Alexander
о у меня сишка новая
Vadim
запили?
Я щас в дороге, но сегодня попробую
Alexander
осталось чтобы работало правильно
Alexander
но там off by one какой-то
Alexander
о новый рекорд
Alexander
https://paste.pound-python.org/show/ghuOtpbzd4KN0R7oc7At/
Alexander
@voidlizard
Dmitry
предлагаешь продолжить олимпиаду?
Alexander
если кто хочет, а я работать
Alexander
просто теперь я доволен, си впереди как и должен быть
Alexander
кстати последняя нормально парсит \r ' ' \n
Alexander
и можно много пробелов
Alexander
могу и таб добавить