Size: a a a

2020 April 08

c🦊

cleverfox 🦊 in ErlangRus
что-то долгое?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
cleverfox 🦊
а что нифка делает?
хеш считает от 8кб строки
источник

ŹR

Źmićer Rubinštejn in ErlangRus
теоретически миллисекунды или микросекунды там какие-то
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Просто почему все вызовы на одном ядре?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Я вот вообще задумался - как эрланг решает какое ядро запускать нифку будет?
источник

c🦊

cleverfox 🦊 in ErlangRus
вот я тоже задумался. В своем основном проекте от nifок избавился давно, еще 18 или 19 OTP был
источник

c🦊

cleverfox 🦊 in ErlangRus
Źmićer Rubinštejn
Просто почему все вызовы на одном ядре?
А оно у тебя параллельно вызывается или последовательно?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
последовательно
источник

c🦊

cleverfox 🦊 in ErlangRus
из одного процесса?
источник

c🦊

cleverfox 🦊 in ErlangRus
может поэтому он в один шедулер попадает?
источник

c🦊

cleverfox 🦊 in ErlangRus
я вспомниаю как у меня NIFки работали, и ЕМНИП они выполнялись на разных ядрах, но они вызывались параллельно с большой конкурентностью из тысяч erlang процессов
источник

LL

Lama Lover in ErlangRus
Źmićer Rubinštejn
Ребят, кто шарит в нифках - почему может быть такая хрень?
72 потока, 142гб
Неплохой такой монстр. Наверное каждый час дорого обходится
источник

LL

Lama Lover in ErlangRus
Źmićer Rubinštejn
Ребят, кто шарит в нифках - почему может быть такая хрень?
По идее, если всё в нифке написано верно, то никаких проблем быть не должно. Вполне вероятно, что где-то произошло зацикливание и нифка не отдаёт управление (виртуалка должна такое отрубать, но мало ли что)
источник

D

Dim in ErlangRus
Źmićer Rubinštejn
хеш считает от 8кб строки
А не проще ерлангом хеш считать ? Если формула тривиальная , типа по модулю произвольного числа, то это одна две строки на ерлагюнге. Нифки блокируют всю параллельность исполнения в ерланг и очень часто сводят на нет все преимущества многопоточности ерланга.
источник

LL

Lama Lover in ErlangRus
Dim
А не проще ерлангом хеш считать ? Если формула тривиальная , типа по модулю произвольного числа, то это одна две строки на ерлагюнге. Нифки блокируют всю параллельность исполнения в ерланг и очень часто сводят на нет все преимущества многопоточности ерланга.
Ну, я думаю что формула не тривиальная, раз её имплементируют в NIF
источник

D

Dim in ErlangRus
Lama Lover
Ну, я думаю что формула не тривиальная, раз её имплементируют в NIF
А стандартные криптографические хеши не устраивают ? Может их можно использовать ?
источник

LL

Lama Lover in ErlangRus
http://erlang.org/doc/man/erl_nif.html
Threads and concurrency

   A NIF is thread-safe without any explicit synchronization as long as it acts as a pure function and only reads the supplied arguments. When you write to a shared state either through static variables or enif_priv_data, you need to supply your own explicit synchronization. This includes terms in process independent environments that are shared between threads. Resource objects also require synchronization if you treat them as mutable.


Может я неправильно понял, но это вроде значит что их можно параллелить
источник

c🦊

cleverfox 🦊 in ErlangRus
Dim
А не проще ерлангом хеш считать ? Если формула тривиальная , типа по модулю произвольного числа, то это одна две строки на ерлагюнге. Нифки блокируют всю параллельность исполнения в ерланг и очень часто сводят на нет все преимущества многопоточности ерланга.
По-моему это утверждение не верно
источник

c🦊

cleverfox 🦊 in ErlangRus
ЕМНИП у меня параллельно все выполнялось
источник

LL

Lama Lover in ErlangRus
cleverfox 🦊
ЕМНИП у меня параллельно все выполнялось
Удваиваю
источник