Makc
А чем она плоха?
Маjко
Медленно, хотелось бы сравнить с альтернативами
Makc
Карацубу не запилили? (:
Маjко
https://en.wikipedia.org/wiki/Anatoly_Karatsuba
Маjко
ээ?
Сережа
https://github.com/paritytech/bigint
Сережа
сравнивай
Маjко
Уже))
Маjко
Ну и это не bigint
Makc
https://en.wikipedia.org/wiki/Karatsuba_algorithm
Маjко
Это u256-512 max
Маjко
И ОН ОЧЕНЬ МЕДЛЕННЫЙ
Маjко
Настолько медленный, что U256 сливает нумовскому BigUint в 10 раз
Makc
оу
Маjко
А. не
Маjко
в 20
Маjко
Я его хотел юзать как промежуточный этам между u64 и BigUint
Маjко
Стало значительно хуже
Маjко
Да и не удивительно, они ЕМНИП xmm регистры вообще не юзают
Loo
воу воу
Loo
поцаны
Loo
а какая из serde реализаций
Makc
Loo
самая быстрая
Loo
?
Makc
Маjко
Да, это говнище
Loo
@mersinvald ты сериализаторы десериализаторы форматов у serde не бенчил случаем?
Маjко
Нет, не нужно было Нужно будет — побенчу. Да и что там бенчить? Альтернативных реализаций одного формата нет, а сравнивать разные — зочем?
Loo
ну поторму
Loo
что можем
Vladimir
@mersinvald ты сериализаторы десериализаторы форматов у serde не бенчил случаем?
Есть только данные перевода в овнед строку из строк
Vladimir
Последняя разработка советских учёных
Vladimir
а какая из serde реализаций
А вообще тебе именно серде?
Loo
что?
Vladimir
что?
Что что?
Loo
чтоо
Loo
Vladimir
Маjко
GMP?
Сенкс, почти в 2 раза быстрее
Makc
rust-gmp? или gmp?
Маjко
rust-gmp
Makc
А, это оказывается одно и тоже)
Makc
гыг, чёт всегда думал что разные либы
Makc
А нет, это форк.
big
Да, это говнище
это говнище не используется
big
оно же найтли требует
big
BigUint это же arbitrary precision вроде?
Маjко
Ну дак по этой логике U256 должен быть значительно быстрее
Маjко
Я потому сначала его и юзал
Маjко
Перед переходом на BigUint/GMP
big
интересное заявление
Маjко
Бенчил
big
а можно взглянуть на бенчи?
Маjко
Хм, сейчас, вылью в отдельную репку
big
спасибо !
big
буду благодарен если сделаешь mention @pepyakin
Маjко
@pepyakin https://github.com/DevHeap/collatz_conjecture/tree/bench/src/backend/collatz-rs
Маjко
Маjко
На большом количестве чисел разница становится, сам понимаешь, огромной
Vladimir
а где 20 раз
Маjко
Эт с другими числами было
Маjко
Там в зависимости от числа сложность может быть разная
Vladimir
а ты уверен, что ты не тестируешь инициализацию? let number = U256::from_dec_str(&number).unwrap(); let mut sequence_u256 = SmallVec::<[U256; 512]>::new();
Nikolay
на найтли, где "это говнище" (ассемблер) только и юзается: test tests::bench::large_number_bigint ... bench: 414,727 ns/iter (+/- 213,820) test tests::bench::large_number_u256 ... bench: 315,378 ns/iter (+/- 188,315)
big
blackbox есть?
Vladimir
u256 быстрее чегото?
Маjко
blackbox есть?
Добавил, ничего не поменялось. Когда блекбокс нужен это сразу видно
Маjко
3 раза разницы
Маjко
Первый раз не то кинул
Vladimir
ну залей нам эти числа
Маjко
Залил с 3x
Anton
Залил с 3x
Тесты на найтли?
Маjко
large_number ... bench: 10,091,292 ns/iter large_number_bigint ... bench: 406,253 ns/iter 20х брал отсюда, это из полной функции, которая свитчится на больший примитив при переполнении. Размер числа соответствовал пространству u256 Числа от туда проебаны ибо не коммитились
Маjко
Тесты на найтли?
Ща и на стейбле проверю
Маjко
На стейбл разве бенчи завезли кстати?
big
неа (