Anonymous
Сколько там нода была?
Anonymous
Ой жс.
melvin
а результат хаскеля заставил выпасть в осадок
melvin
так
Anonymous
Вот поэтому предположение, что в хаскеле как-то можно иначе?
Grigory
loop можно и O2 флагом собрать (но я не эксперт тут) и Word32 юзать; есть llvm флаг еще
A64m
Это корректный тест для сравнения?
это целые неограниченного размера
melvin
мы тут не ради срача. это норм производительность? мб флаги какие нибудь забыли?
A64m
скомпилировано без оптимизации
melvin
оно оптимум по скорости даст или по всему понемногу?
A64m
-O2, -O3 в ghc нет
A64m
ну и Int вместо Integer
Viacheslav
Ещё наверное unboxed можно заюзать?
melvin
спасибо, сейчас проверим
melvin
Ещё наверное unboxed можно заюзать?
пока что не хочется оптимизировать именно код. пускай остается простым и прямолинейным
A64m
Ещё наверное unboxed можно заюзать?
думаю, толку от этого не будет
A64m
а, еще интересно какая версия ghc
melvin
8+
melvin
в фоне ничего особого не висит
A64m
8.0 или 8.2?
melvin
8.0
Anonymous
ghc --version ⏎ The Glorious Glasgow Haskell Compilation System, version 8.4.3
melvin
а, даже так
Anonymous
Опа.
Anonymous
Anonymous
Всё те же 10kkk.
Ilya
Integer -- это libgmp
A64m
не совсем
Ilya
хотя, конечно, для всего, что влезает в машинное слово, оверхэд должен быть не большим
Anonymous
Флаг оптимизации играет хорошо.
A64m
хотя, конечно, для всего, что влезает в машинное слово, оверхэд должен быть не большим
он меньше, потому что пока в инт влезает либгмп не используется, но накладные расходы и проблемы с оптимизацией из-за того что три конструктора а не просто обертка над Int# все равно есть
A64m
все равно медленно
Ilya
ну, оптимизация, наверное, сделала предложенный выше анбоксинг
Anonymous
все равно медленно
Это очень неплохо в сравнении с другими.
melvin
не 7 мин, можно спать спокойно
Anonymous
Int взамен Integer тоже играет.
A64m
а llvm есть?
A64m
можно еще с -fllvm попробовать
Anonymous
а llvm есть?
А какой нужен?
A64m
если 8.4 то лучше 5
Anonymous
brew info llvm ⏎ llvm: stable 6.0.0 (bottled), HEAD [keg-only]
Anonymous
Блин. Его собирать придётся.
Anonymous
llvm отменяется.
Anonymous
Alexander
чего там опять попугаи?
Alexander
уже решили обогнали го или ещё нет?
Anonymous
Неа. Только если выключать принудительно флаги в Го.
Anonymous
Alexander
а где гист с Haskell кодом?
melvin
nopt 134.56s user 0.89s system 99% cpu 2:15.45 total -O2 6.54s user 0.00s system 99% cpu 6.538 total
Alexander
ну ребят, ну оформляйте гистом с кодами всех языков и человеческим описанием
Alexander
а то 100500 копипаст результатов бенчмарка без кода это неудобно
Anonymous
Да мы так, локально.
Anonymous
Пока что свивт огонь. Те самые 10kkk выполняет за 500мс.
Alexander
просто много строк и найти сложно с чего все началось и что меряют
Alexander
а отматывать на 500+ сообщений не хочется
melvin
Это корректный тест для сравнения?
не гист, но начиналось с этого
melvin
сменили Integer на Int только
Anonymous
И оптимизацию цомпиляции -O2 завезли.
melvin
ллвм лениво собирать 🌚
A64m
там любую версию надо собирать?
melvin
написало что сейчас только 3.7 поддерживается
A64m
кем поддерживается?
melvin
[1 of 1] Compiling Main ( test2.hs, test2.o ) You are using an unsupported version of LLVM! Currently only 3.7 is supported. We will try though... opt: /tmp/ghc18358_0/ghc_2.ll:15:29: error: expected comma after alias or ifunc's type @__stginit_Main = alias i8* bitcast (%__stginit_Main_struct* @__stginit_Main$def to i8*) ^ `opt' failed in phase `LLVM Optimiser'. (Exit code: 1)
Евгений
У тебя 7.8 что ли?
Евгений
Поставь 8.2 или 8.4
A64m
8.0
melvin
хотелось приемлимый результат увидеть, а не изначальный
Alexander
выигрывает тот у кого констант фолдинг для рекурсивных функций не ограничен
Alexander
нужно putStrLn . show . f =<< readLn
Alexander
если менять скорость языка
Alexander
да и тест несравнимый
Alexander
в го нерекурсивная функия