Size: a a a

2021 January 15

PR

Peter Rezikov in pro.elixir
Vladimir Sekisov
2000 редукций на слот обычно пишут в доках,
поэтому существует yield,
ежели кому надо отдать
управление до истечения лимита.
интрестинг, еще оказывается можно вручную увеличить кол-во редукций через bump_reduction, но пользоваться ни тем ни тем не рекомендуют в доке.
источник

AB

Alex Bubnov in pro.elixir
Peter Rezikov
интрестинг, еще оказывается можно вручную увеличить кол-во редукций через bump_reduction, но пользоваться ни тем ни тем не рекомендуют в доке.
это делалось для поддержки nif, чтобы они в меньшей степени сбивали планировщик с толка
источник

LL

Lama Lover in pro.elixir
Евгений
Прикол в том, что циклов нет, поэтому создать какой-то кусок кода, который долго работает и при этом не делает вызовов функций, затруднительно.
Так вообще-то любое действие это вызов функции
1 + 1 это вызов одной функции
источник

LL

Lama Lover in pro.elixir
Peter Rezikov
Да, по кол-ву рудукций, то и есть вызов функции. Если не считать толстых BIF-ов и с учетом того что нет циклов, это должно просиходить достаточно часто.
BIF-ы могут стоить нескольких редукций
источник

Е

Евгений in pro.elixir
и NIF-ы тоже могут
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Так вообще-то любое действие это вызов функции
1 + 1 это вызов одной функции
я почти уверен, что :erlang.+ на каком-то из стейджей компиляции инлайнится
с другой стороны - на определенном уровне каждый выполняемый опкод это отдельная функция
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
я почти уверен, что :erlang.+ на каком-то из стейджей компиляции инлайнится
с другой стороны - на определенном уровне каждый выполняемый опкод это отдельная функция
Конечно инлайнится, но вот редукции всё равно считаются
источник

AB

Alex Bubnov in pro.elixir
я всегда считал единичной редукцией выполнение одной инструкции байткода, такое рассмотрение не создает лишней двусмысленности.
источник

ML

Maksim Lapshin in pro.elixir
Alex Bubnov
я всегда считал единичной редукцией выполнение одной инструкции байткода, такое рассмотрение не создает лишней двусмысленности.
Tail call же
источник

AB

Alex Bubnov in pro.elixir
Maksim Lapshin
Tail call же
поясни
источник

ML

Maksim Lapshin in pro.elixir
Alex Bubnov
поясни
Могу ошибаться, но вроде редукция считалась на tail call: там же очищается область видимости и можно удалять временные переменные
источник
2021 January 16

B

Bogdan in pro.elixir
Вопрос есть, кравлю, есть socks5 proxy pool, каждый запрос отправляется в отдельном процессе, соответственно открывается каждый раз новое подключение, как можно держать подключения открытыми для всех процессов?
источник

B

Bogdan in pro.elixir
Полагаю скорость кравлинга сильно падает по этой причине.
источник

B

Bogdan in pro.elixir
Так как когда подключаюсь на уровне OS, все работает раз в 10 быстрее.
источник

B

Bogdan in pro.elixir
Для коннекта к прокси использую Tesla, адаптер Gun стоит сейчас, но можно поменять.
источник

AI

Alexis IV Mobius in pro.elixir
Bogdan
Вопрос есть, кравлю, есть socks5 proxy pool, каждый запрос отправляется в отдельном процессе, соответственно открывается каждый раз новое подключение, как можно держать подключения открытыми для всех процессов?
Что-то типа wpool не подойдёт для задачи?
источник

AI

Alexis IV Mobius in pro.elixir
Я обычно коннекшн пулы с помощью него делал.
источник

B

Bogdan in pro.elixir
Щас подумаю, может через pool_boy попробую вынести в пул
источник

B

Bogdan in pro.elixir
У меня раньше кстати так и было но я потом его дропнул, может поэтому скорость и упала 🤔
источник

AI

Alexis IV Mobius in pro.elixir
Bogdan
Щас подумаю, может через pool_boy попробую вынести в пул
с пулбоем у меня были какие-то проблемы, но точно не помню какие
источник