Ilya
тогда норм, всё сходится
Alexander
@greenest_pig точно, надо
Alexander
но тогда порядок кстати требовать нельзя
Ilya
0.2 на процессинг, 0.3 на печать, остаток на чтение и парсинг входа
Ilya
вот вам и теоретический предел
Alexander
тормоз - печать
Dmitry
это задача была тривиальная, поэтому вообще си на повестке
Alexander
+
Dmitry
а вот было бы как в fprog - вырезание карты из OSM
Dmitry
я бы посмотрел на любителей спец. олимпиады писать на си
Alexander
не, нафиг такое счастье
Dmitry
хотя там, помнится, победило знание предметной области и бейсик
Dmitry
но это было давно
Leonid 🦇
вы всё еще меряетесь?
Dmitry
вы еще кипятите? а мы уже рубим
Leonid 🦇
пока в раст не завезут ручные симды, он не подходит для высокоскоростных дел
Anonymous
а вы большой файл для тестов просто нагенерили?
Dmitry
большой мы пока не генерили
Dmitry
есть мелкий
Dmitry
9999 пар
Leonid 🦇
@A64m_qb0 http://disciple-devel.blogspot.ru/2017/10/the-disciplined-disciple-compiler-v051.html
Anonymous
есть мелкий
ну вы на нем всё гоняли?
там вроде прост 9999 пар рандомных слов длиною 5 символов каждое?
Leonid 🦇
я думал ddc уже всё, а видать еще можно из него пару phd выжать
Aragaer
склепал наивную реализацию на common lisp 8)
Aragaer
я думаю, в ио упрется
A64m
нет, какой там все, я периодически заглядываю в коммиты, Липпмеер все что-то там трудится
Aragaer
1 минута на моей машине
Aragaer
буферизацию можно прикрутить через грей стримы
Anonymous
на каких еще языках были бы интересны имплементации?
Dmitry
@anarchostatist go
Dmitry
ожидаю по времени между моно и pypy
A64m
да у го имплементация всеже не до такой степени убогая должна быть
Anonymous
м, здесь ведь никто не шарит в оптимизациях го?
Dmitry
@A64m_qb0 ставлю на 6 секунд на go
Dmitry
@qnikst я вот думаю - а в хаскеле нельзя замутить unboxed vector токенов, каждый токен - тип сумма - либо "влезает в чанк" либо "не влезает в чанк - ссылка"
Anonymous
я думаю будет быстрее pypy
A64m
думаю, что 3 сделают
Dmitry
учитывая. что pypy проиграли плюсы и наивные реализации на си, то я бы не был столь уверен
Dmitry
соответственно, нужен какой-то тип для "байтстроки фиксированного размера"
Anonymous
я могу спросить одного го разработчика
A64m
не, ну если особо стараться не будут - понятно
A64m
я имел в виду, что если постараются - то и 3 сделают
Dmitry
@A64m_qb0 я го не почти не знаю, могу о нём судить только из общих соображений
A64m
да я также
Dmitry
и общие соображения приводят к вот этому
Anonymous
Dmitry
ну это дело добровольное. что значит "нужно" ? вся эта специальная олимпиада особо не нужна
Dmitry
код на pypy занимает 6 строк и работает довольно хорошо
Anonymous
лол(
Dmitry
особенно по отношению к затраченному времени на разрабтку
A64m
лучше бы кто-то поэкспериментировал с переписыванием concat и unlines в байтсрингах на билдере и бенчмарки прогнал
Alexander
вот надо будет
Alexander
Dmitry
м? это ж очевидно. я вот подумал, что надо было на си так писать
Dmitry
получится довольно компактно в плане писанины
Dmitry
я просто не очень знаю, какие ограничения анбоксинг налагает
Dmitry
но в доступных тестах всё будет укладываться в чанки фиксированного размера
A64m
A64m
да никакие
A64m
анбоксинг это фактически написать свой вектор с любым представлением хоть со своим аллокатором накостыленным и имплементировать для него два класса
A64m
для мутабельного и иммутабельного векторов
Dmitry
@A64m_qb0 ну в смысле, там возможна конструкция
data Chunk = FIxed Smth | NotFixed SmthElse
Dmitry
и имеет ли она смысл
A64m
нет, там надо не в таких категориях рассуждать
Dmitry
в сишке бы я так делал, и думаю, работало бы сопоставимо с вариантом @qnikst но более читабельно было бы
A64m
а типа вот у нас байтаррей, мы можем там три инта хранить как ссылки на чанк и его интервал а можем строку в несколько байт если влезает
Dmitry
ну т.е так - правда ли что unboxed vector занимает (со своим содержимым) прямо вот последовательный блок памяти
Dmitry
2) правда ли, что при его наращении он сделает realloc и скопирует начало - ну, как в си это происходит
Alexander
ктасти можно
A64m
нет
Alexander
(про хранить chunk в 3х интах)
A64m
анбоксед вектор это часто несколько байтарреев
Alexander
или нельзя с тегингом каким?
A64m
да можно, надо придумать только где тег помещать
A64m
можно ли и его в эти три инта
Alexander
я пока не вижу
Alexander
строка неотличима же от произвольных данных
Alexander
разве что требовать чтобы вконце \0 был
A64m
ну понятно что первый байт трех интов для строки потерян
Alexander
или последний