Daniel
а масштабируется оно скверно
Dmitry
что как бы сразу приводит к тому, что писать на хаскеле становится неприятно
Daniel
я понял
Dmitry
но
Dmitry
неприятно примерно так же, как просто писать на си, например
Daniel
на си очень неприятно писать
Dmitry
миллионы в секунду... ну можно же проэмулировать. по сути это примерно вставка/выборка из двух бинарных хипов
Daniel
это все принято писать на с/с++, но получается плохо
Dmitry
если туда пишется аж по миллиону в секунду... проблемы будут в любом языке, кмк.
Dmitry
ну т.е вставка миллиона записей в секунду в как-то отсортированную коллекцию это вообще проблема
Dmitry
попробуйте вставить в том же постгресе в in-memory table столько
Dmitry
а ведь он на си написан.
Daniel
да ну, перестаньте
Alexander
если туда пишется аж по миллиону в секунду... проблемы будут в любом языке, кмк.
Правильно ли я понимаю, что это наносекундный диапазон? Без параллелизации это будет сложновать на любом языке, да
Daniel
постгрес не показатель, он с очень сложными структурами работает
Daniel
микросекундный
Daniel
параллелизация в рамках одного сервера - это обязательно
Alexander
Микросекундный - это если надо уложиться в диапазон от 1 микро до 1 милисекунды. А здесь по 1 операции на микросекунду получается, значит, надо уложиться до 1 микросекунды на операцию
Alexander
Или я ошибаюсь?
Dmitry
ну собственно что тут рассуждать - макет пишется быстрее, чем мы тут рассуждаем
Alexander
Мне это для самообразования :)
Daniel
мне надо с изучения хаскеля начинать написание макета
Daniel
Или я ошибаюсь?
не, все правильно. это диапазон сотен наносекунд
Alexander
Такие производительности достигаются на Хаскеле только с опытом
Dmitry
ну вообще не так всё грустно выглядит, даже если тупо на векторах поэмулировать
Alexander
Изначальный код на Хаскеле обычно "в лоб" и неэффективный.
Dmitry
обычно при размере коллекции в 1M repl норовил залипать, а сейчас, я смотрю, нет
Daniel
1М - это число элементов?
Dmitry
если сразу принять, что никаких там ADT, только тупо unboxed вектора и инты, то может всё не так уж плохо
Daniel
а, вот еще
Daniel
что в хаскеле с математикой 128 бит?
Daniel
а то 64 нужной точности не обеспечивают
Dmitry
целочисленной? ну есть Integer
Daniel
целочисленной, да
Dmitry
ну есть Integer, померяйте, хватит ли его производительности
A64m
тогда уж какой-нибудь http://hackage.haskell.org/package/data-dword
A64m
Integer тормозить будет
Dmitry
ну, в общем, мне кажется, это может работать, но правда это будет такой. довольно печальный хаскель.
Dmitry
хотя возможно печальный хаскель это веселее. чем си или плюсы
Dmitry
самое главное это как здесь бороться с gc
A64m
если все в анбоксед вектороах, вроде особо бороться и не с чем
Alexander
Не очень понятно, если это целые числа.
Daniel
что именно не понятно?
Dmitry
стикеры тут не приветствуются
Dmitry
короче, все составные части есть
A64m
не факт, что есть
Dmitry
написать синтетический тест с генератором, двордами и анбоксед векторами вроде недолго
A64m
с анбоксед коллекциями в хаскеле неважно дела обстоят
Dmitry
да может боксед прокатят тут.
A64m
т.е. их самостоятельно скорее всего придется делать на векторах или какой-то заброшенный код дорабатывать напильником
A64m
даже инстансы Vector/MVector для этих двордов придется самому писать
Dmitry
резюме такое - оптимизация в хаскелле требует опыта. а если опыт есть, то такие вопросы не спрашивают
Daniel
я понял, да
Dmitry
стикеры тут не приветствуются
Простите, это карман
Dmitry
ну так, навскидку - на одном ведре 1M туплов (Int64,Int64) легко переваривается
Dmitry
за секунду.
Dmitry
ну т.е много меньше, чем за секунду, конечно
Dmitry
т.е генерируется и сортируется
Dmitry
так что перспективы неплохие.
саша
коллеги, скажите вы в курсе, что такое матчер для биржи? криптобиржи, если точнее если да, то скажите - хорошо ли его писать на хаскеле? хочу про плюсы и минусы понять
учитывая то, что задача требует какой-то нетривилальной бизнес логики и простора для байтоеб^W оптимизаций, я бы порекомндовал добавить в возможные варианты руст
Dmitry
у него порог вхождения повыше будет
Maxim
Чем у хаскеля, лол?
Cheese
конечно
саша
у него порог вхождения повыше будет
У руста то? Для людей, которые всю жизнь на императивщине сидели руст таки попроще будет, я думаю.
Maxim
Странные вы ребята
Cheese
в Хаскеле самое сложное — математика, а она дружественная к человеку, в Расте же надо думать как процессор, это сложно
саша
если только после ассемблера
ну как-бы у раста две новый концепции в сравнении с %IMPERATIVE_LANG_NAME% - владение и заимствование. На хаскеле их чуть больше.
саша
разница в сложности, а не в количестве
концепции проще владения/заимствования сложно найти
саша
Cheese
концепции проще владения/заимствования сложно найти
ок, надо тебя запомнить, когда понадобится на Расте что-то написать, возможно, ты единственный, кому это будет легко
саша
ок, надо тебя запомнить, когда понадобится на Расте что-то написать, возможно, ты единственный, кому это будет легко
я о том, что проще въехать в раст, чем научится хаскелю, написать приложение, а потом ещё хрен пойми сколько въезжать в методы оптимизации кода на хаскеле
саша
понятно, что просто написать опердень на хаскеле будет в любом случае проще, но тут то нужен хайперфоманс