
Дмитрий
09.04.2017
12:17:24
Сейчас готовлю данные для тестов, всего две функции за 5 секунд генерируют 55 мегабайт логов ?
Было бы гораздо лучше, если бы автор банальной сериализации/десериализации задумался бы об этом заранее((

andretshurotshka?❄️кде
09.04.2017
15:33:34
/stat@combot

Combot
09.04.2017
15:33:38
combot.org/chat/-1001071213089

Google

Victor
09.04.2017
16:14:07
/stat@combot

Combot
09.04.2017
16:14:07
combot.org/chat/-1001071213089

Mikhail
10.04.2017
17:12:13
ramda-fantasy похоже все, https://github.com/ramda/ramda-fantasy/issues/157

code4aman
10.04.2017
17:43:02
посмотрел чуть эти ваши sanctuary и fantasyland - никогда бы не поверил что "радуги" и "единороги" могут так понижать самооценку человека ?

Vladimir
10.04.2017
17:43:20

code4aman
10.04.2017
17:44:38
ниче не понятно (посмотрел чуть sanctuary и fantasyland)

Nikita
10.04.2017
17:50:47
книжку почитай https://drboolean.gitbooks.io/mostly-adequate-guide/content/

Дмитрий
11.04.2017
02:40:09
В тройке sanctuary, fantasy-*, ramda-fantasy выглядела хуже всех

Yung
11.04.2017
07:07:27
Ребзя, такой вопрос.
А почему most по бенчам настолько быстрее остальных? Я просто глянул этот тест https://github.com/cujojs/most/tree/master/test/perf и типа большая разница в перформансе оче. В чем суть?
Там же вроде эти библиотеки вообще сейчас под спеку обсервера подогнали реализацию и разницы вроде особо быть не должно, уж тем более такой огромной

Vladimir
11.04.2017
08:08:09
блубёрд тоже A+ промисы, но быстрее обычных

Yung
11.04.2017
08:13:19
Но не в 10 же раз (вроде)

Дмитрий
11.04.2017
08:55:07
Затачивание под тест, либо просто хитрая подстройка под особенности VM

Google

Дмитрий
11.04.2017
08:57:13
Я так делал метод pipe/compose в 4 раза быстрее аналога из redux и ramda и на 10% быстрее лодаша. Тупо в watch режиме запускаешь бенчмарк и оптимизируешь, пока растут цифры)
А, я понял, в чём фича) Походу, значительная часть оптимизации содержится вообще в другом пакете
@most/prelude
https://github.com/mostjs/prelude/blob/master/src/array.js
Код такого рода, с тщательно выделяемыми массивами, с индексодрочерством, реально вполне может быть в разы быстрее привычных подходов

Yung
11.04.2017
09:08:15

Дмитрий
11.04.2017
09:11:12
Я просто недавно с таким же явлением столкнулся) Все стандартные реализация big integer в npm нужную мне операцию жевали от 8 до 40 секунд, а древняя либа из 2007 года молотит всё за 1,5-3 секунды

Сергей
11.04.2017
09:11:46

Дмитрий
11.04.2017
09:17:56
Либу пришлось тянуть с собой, потому что надо было переписать её с глобал переменных на es modules ? А репозиториев у неё уже никаких не осталось
https://github.com/zerobias/telegram-mtproto/blob/develop/src/vendor/leemon.js
Операция — криптография, разложение ОЧЕНЬ длинного числа на два множителя
https://github.com/zerobias/telegram-mtproto/blob/develop/src/bin.js#L350
По условию, результат вычислений правильный, если ответ оказался меньше, чем 2 в степени 2048-64
В этом числе 496 цифр %)

Сергей
11.04.2017
09:22:17
хренасе
меня всегда интересовало как в js адекватно работать с biginteger

Vladimir
11.04.2017
09:23:52

Дмитрий
11.04.2017
09:24:03
Но медленный :(

Сергей
11.04.2017
09:24:57
кто-нибудь знает принцип работы подобных библиотек?

Дмитрий
11.04.2017
09:26:10
В плане?

Сергей
11.04.2017
09:27:28
ну как реализуется работа с огромными числами, жс же не умеет нативно

Дмитрий
11.04.2017
09:29:45
Загоняют в массивы и работают с помощью соответстувющих выч.мат теорий)
Ну вот могу сказать например, что bn использует кастомный объект и создаёт его через new, а так же во многих местах используется чейнинг и всё, производительности уже нет
А байты гоняют на самом-самом низком уровне, ничего кроме массивов не создавая

Aleh
11.04.2017
09:31:27
Ну типа классические задачи на большие числа

Google

Aleh
11.04.2017
09:31:39
В любои яп

Дмитрий
11.04.2017
09:31:42
Вот ультра монстрячество
https://github.com/srijs/rusha/blob/master/rusha.js#L384
asm.js и кодогенерация через макросы, на выходе — самая быстрая библиотека для sha1)

Aleh
11.04.2017
09:33:04
А нет у жса биндингов к каким-нибудь global?
Gmp*

Vladimir
11.04.2017
09:35:04
new BigNum(<String>);

Дмитрий
11.04.2017
09:35:33

Aleh
11.04.2017
09:35:45
А тебе не в ноду?(

Vladimir
11.04.2017
09:35:49

Aleh
11.04.2017
09:35:54
А оно же на васме не оч?)

Дмитрий
11.04.2017
09:35:55
Я всё хочу попробовать заменить leemon на прямую транскомпиляцию openSSL в emscripten

Сергей
11.04.2017
09:35:56

Vladimir
11.04.2017
09:36:17
я использовал одну либу с C++ биндингом
оно ломалось каждые 3 месяца

Сергей
11.04.2017
09:36:27

Дмитрий
11.04.2017
09:36:28
А тебе не в ноду?(
Ну у меня универсальная либа. Более того, там веб-воркеры автоматически разворачиваются
Ту либу кстати писал математик для каких-то своих нужд

Google

Vladimir
11.04.2017
09:40:19
руша?

Дмитрий
11.04.2017
09:41:09
Не, ту штуку из 2007, которую я в себе в проект подтянул
https://github.com/zerobias/telegram-mtproto/blob/develop/src/vendor/leemon.js
Leemon — если по имени автора

Vladimir
11.04.2017
09:43:22
последние 15 строчек — мякотка

Дмитрий
11.04.2017
09:44:07
Это ещё я отформатировал %)

Сергей
11.04.2017
09:44:27
я один не понимаю, зачем копипаста?

Дмитрий
11.04.2017
09:44:37
Чтобы было быстрее
Ну как компиляторы циклы разворачивают, например

Aleh
11.04.2017
09:45:45
В жсе наверное не быстрее?

Дмитрий
11.04.2017
09:45:53
И есть подозрение, что даже там всё далеко не оптимально, == везде и в паре мест я убрал parseInt, который в таком коде должен быть как гиря)

Сергей
11.04.2017
09:46:03

Дмитрий
11.04.2017
09:46:30
Ещё можно SharedArrayBuffer заюзать)) И в параллель в четыре потокa

Roman
11.04.2017
11:59:11
кому понятней не становилось?:)
Начали переводить цикл статей Тома Хардинга по спецификации Fantasy Land https://medium.com/devschacht/cпецификация-волшебного-мира-1-daggy-ef332ae68dd8

Google

Vadim
11.04.2017
12:04:44
Только сейчас узнал об этом fantasy land. Но нифига не понял зачем он может быть мне нужен? Может ли кто-нибудь объяснить в каких случаях эта штука может понадобиться frontend разработчику?
Я имею в виду библиотеки, служащие для обслуживания этого самого fantasy land

Vladimir
11.04.2017
12:07:20
то тебе только монады можно

Aleh
11.04.2017
12:07:34
чистый фронтенд?)

Vladimir
11.04.2017
12:07:39
как раз fantasy-land
side-effects free

Vadim
11.04.2017
12:08:15
Очень абстрактный ответ

Vladimir
11.04.2017
12:08:30
ты умеешь в compose/pipe/curry?

Vadim
11.04.2017
12:08:40
Да

Vladimir
11.04.2017
12:08:44
хорошо
понимаешь монады?

Vadim
11.04.2017
12:09:07
Может даже использую их, не знаю термина )
Вообще ramda активно использую

Aleh
11.04.2017
12:09:46
тс используешь?)
nullable типы - монада maybe
массивы тож монады
промисы еще

Vadim
11.04.2017
12:10:19
Все пишу на ts

Vladimir
11.04.2017
12:11:01
надо же понимать