Size: a a a

2018 November 21

M

MIT/Benzands in ru.nim.talks
а, вернее Araq сказал "** is weird, it should be ^"
источник

ZK

Zhenya Katataev in ru.nim.talks
вот говорят, что у каждого профессионального програмиста c/c++ есть своя библиотека строки. вот у меня будет своя походу библиотека(хоть и маленькая), которая будет иметь реализацию степени))
источник

M

MIT/Benzands in ru.nim.talks
Zhenya Katataev
вот говорят, что у каждого профессионального програмиста c/c++ есть своя библиотека строки. вот у меня будет своя походу библиотека(хоть и маленькая), которая будет иметь реализацию степени))
ну это чисто для себя, если ты считаешь, что тебе прям нужен такой ^
источник

A

Andrew in ru.nim.talks
Ага, ещё не хватало свою замену and, or и not писать, ведь это не по-сишному ))
источник

ZK

Zhenya Katataev in ru.nim.talks
не, у меня к логическим операциям притензий нет
источник

AF

Amir Fazleev in ru.nim.talks
Yuriy Glukhov
диаметральный пример - если данные захардкодить, то компилер потенциально сможет оптимизировать программу до вида echo "$ТУТ_ТВОЙ_РЕЗУЛЬТАТ". это конечно впечатляет с академической точки зрения (теория компилеров и все такое) то не имеет ничего общего с реальной жизнью
В общем переделал я бенч таким образом, чтобы пользователь задавал args, что исключит преждевременные оптимизации и получил следующие данные:
main2.cpp
clang++ -Ofast -ffast-math -freroll-loops -flto=thin main2.cpp -o main2
time ./main2 3 4
10m18,265s

g++ -Ofast -ffast-math -funroll-loops -LTO -lm main2.cpp -o main2
3m20,567s

[gfortran]
gfortran -Ofast -LTO -o main2 main2.f
0m42,615s


[dlang gcc]
ldc2 -O3 -ffast-math -reroll-loops -flto=thin main2.d
1m42,491s

[nim inline]
1m26,490s

[crystal]
1m49,169s

[rust]
1m29,438s

lto
1m25,710s

[python numba]
2m37,664s
источник

M

MIT/Benzands in ru.nim.talks
А чего для Нима не применил все эти аргументы компилятора на с++?
источник

M

MIT/Benzands in ru.nim.talks
Ну на си там те же аргументы
источник

AF

Amir Fazleev in ru.nim.talks
MIT/Benzands
А чего для Нима не применил все эти аргументы компилятора на с++?
Они вроде бы в cfg уже настроены
источник

M

MIT/Benzands in ru.nim.talks
Amir Fazleev
Они вроде бы в cfg уже настроены
Не все
источник

M

MIT/Benzands in ru.nim.talks
lto уж точно нет
источник

AF

Amir Fazleev in ru.nim.talks
А как передать?
источник

M

MIT/Benzands in ru.nim.talks
--passC:"аргументы" передать компилятору
источник

M

MIT/Benzands in ru.nim.talks
--passL линкеру
источник

M

MIT/Benzands in ru.nim.talks
А лол, я думал с++ 10 секунд
источник

M

MIT/Benzands in ru.nim.talks
Amir Fazleev
В общем переделал я бенч таким образом, чтобы пользователь задавал args, что исключит преждевременные оптимизации и получил следующие данные:
main2.cpp
clang++ -Ofast -ffast-math -freroll-loops -flto=thin main2.cpp -o main2
time ./main2 3 4
10m18,265s

g++ -Ofast -ffast-math -funroll-loops -LTO -lm main2.cpp -o main2
3m20,567s

[gfortran]
gfortran -Ofast -LTO -o main2 main2.f
0m42,615s


[dlang gcc]
ldc2 -O3 -ffast-math -reroll-loops -flto=thin main2.d
1m42,491s

[nim inline]
1m26,490s

[crystal]
1m49,169s

[rust]
1m29,438s

lto
1m25,710s

[python numba]
2m37,664s
Очень странные результаты у C++ :)
источник

M

MIT/Benzands in ru.nim.talks
может эти аргументы наоборот замедляют 🤔
источник

M

MIT/Benzands in ru.nim.talks
ним юзает -O3 -ffast-math для скорости с С компилятором
источник

AF

Amir Fazleev in ru.nim.talks
MIT/Benzands
ним юзает -O3 -ffast-math для скорости с С компилятором
Они исключают pre compile оптимизации
источник

AF

Amir Fazleev in ru.nim.talks
MIT/Benzands
Очень странные результаты у C++ :)
Зато фортран какой молодец)
источник