
Alexey
28.01.2017
06:57:06
В данном случае это хуйня. Зачем тебе https -> http?

Stuf
28.01.2017
06:57:50

Anatoly
28.01.2017
08:28:42
и это разумно

Google

Anatoly
28.01.2017
08:29:01
потому что пришёл ты на сайт, который https закрыт, а тебя на хуйню какую-то перенаправляют

Alexey
28.01.2017
08:31:22
Ага, это очень и очень плохое поведение.

Zart
28.01.2017
11:39:11
у меня подозрение что у него в случае с хттпс сертификаты не с тем именем оказываются

Anatoly
28.01.2017
13:45:38

Zart
28.01.2017
13:51:28
⦁ Average Disk Queue Length, Average Disk { Read | Write } Queue Length
These counters collect concurrency data, including peak loads and workloads that contain significant bursts. These counters represent the number of requests that are active below the driver that takes the statistics
...
It is important to note that these values are not strictly accurate; rather, they are derived values. Avg. Disk Queue Length is equal to (Disk Transfers/sec) * (Disk sec/Transfer). This is based on Little’s Law from the mathematical theory of queues
сколько любопытного порой закопано в некоторых документах, однако

Eugine
28.01.2017
19:26:21
Хороший выбор ника

b0g3r
28.01.2017
19:26:41
для этого чата вполне

Alexey
31.01.2017
08:35:35
Привет. Вопрос про асинк. Возможно, тупой.
Насколько я понял, когда процесс хочет произвести ввод/вывод, он должен обращаться к ядру системы. Ядро шлёт его запрос к, например, сетевой карте, а процесс кладёт в лист заблокированных. Когда сетевая карта присылает данные, контроль возвращается к процессу вместе с данными.
Как тогда получается, что в корутинах мы можем слать сразу кучу запросов, не блокируя процесс? Для этого в ядре есть какой-то специальный механизм? Это epoll (в линкусе)?

Roman
31.01.2017
08:38:13

Alexey
31.01.2017
08:40:48
Да, я про это и написал.
Но мы можем через какой-нибудь asyncio отправить 1000 реквестов, и процесс не будет блокироваться. То есть он шлёт запрос на io в ядро, но при этом говорит "ткни сетевую карту, но меня не блокируй". Как-то так?

Cykooz
31.01.2017
08:51:27

Alexey
31.01.2017
08:53:58
Это процесс, который корутины юзает? Или вообще любой процесс, ждущий io, не блокируется?

Cykooz
31.01.2017
09:06:31
В питоне, по моему, вся асинхронка вертится вокруг сокетов. Вся остальная фигня выполняется синхронно.

Google

Cykooz
31.01.2017
09:07:19
Так что не весь io в питоне асинхронный. Например файловые операции (в том числе работа с потоками stdin, stdout) - это всё синхронное.

Roman
31.01.2017
09:07:44

Cykooz
31.01.2017
09:09:57

Roman
31.01.2017
09:10:14

Cykooz
31.01.2017
09:10:34


Roman
31.01.2017
10:27:20
Привет. Вопрос про асинк. Возможно, тупой.
Насколько я понял, когда процесс хочет произвести ввод/вывод, он должен обращаться к ядру системы. Ядро шлёт его запрос к, например, сетевой карте, а процесс кладёт в лист заблокированных. Когда сетевая карта присылает данные, контроль возвращается к процессу вместе с данными.
Как тогда получается, что в корутинах мы можем слать сразу кучу запросов, не блокируя процесс? Для этого в ядре есть какой-то специальный механизм? Это epoll (в линкусе)?
да, ты верно понял
но как сказали выше, сам процесс с железом не общается. он юзает абстрации в виде сокетов
для работы с асинхронным io есть select, который старый и со своей задачей прекрасно справляется, если только нет надобности обслуживать множество соединений.
select на каждое событие поднимает все зарегистрированные хендлеры и сообщает каждому, мол в таком-то сокете случилась событие. а приложение само думает, важно это для него или нет.
epoll, kqueue поднимает только те хэндлеры, для которых случилось событие и сообщает им об этом


Zart
31.01.2017
11:24:17
"процесс блокируется" - просто шедулер не шедулит его на выполнение, что по факту ставит его на паузу
sock = socket(...)
setsockopt(sock, O_NONBLOCK, 1)
...
recv(sock, buf, 1000) - для синхронного и/о в этой точке поток просто не будет выполняться пока в сетевуху не прилетят данные и ядро не будет готово перекинуть их в память процесса
для асинхронного и/о этот вызов тут же вылетит с ошибкой EWOULDBLOCK
корутины в контексте питона - это его байткод, который может выполняться до ближайшего yield после чего сохранять состояние фрейма для последующего продолжения банкета
это реализовано на уровне интерпретатора языка в случае цпитона, и никакого отношения ни к ядру, ни тамошним апи не имеет


Alexey
31.01.2017
12:14:36
Да, про корутины понятно
Но когда я делаю
html = await fetch(session, 'http://python.org') (это пример из aiohttp)|
Процесс питона дёргает ядро и просит его выполнить io, так?
И по идее scheduler должен не давать этому процессу выполнятся, пока ответ от python.org не придёт
Меня интересует, как это процесс и шлёт http-запрос, и продолжает работать

Roman
31.01.2017
12:21:38
это если очень утрировано
то да
причём в случае с select тебе прийдёт ответ даже в том случае, если для тебя не было событий, но события были для кого-то другого

Google

Roman
31.01.2017
12:23:29
но ты таки обрати внимание на то, что вещает zart

Alexey
31.01.2017
12:25:23
Да, его я сообщения я уже более-менее осознал

Alexey
31.01.2017
12:26:00
Зарт вообще фигни не посоветует.

Zart
31.01.2017
12:26:10
не, ну он примерно верно всё понял
просто эти "дергает ядро" - это несколько абстрактно
питон юзает обычные бсд сокеты как все остальные программы в этом случае

Alexey
31.01.2017
12:27:11
Ну я пока пытаюсь хотя бы приблизительно понять, а мои знания о сокетах и ядре близки к нулю

Zart
31.01.2017
12:27:48
мне нравится как полные нубы лезут в новомодный асинк, в котором даже матёрые питорасы путаются

Roman
31.01.2017
12:27:59
=)

Zart
31.01.2017
12:28:15
армин же вроде писал ту статью где пытался просуммировать что они там нахуячили?
с потредовыми ивентлупами и прочей херней

Roman
31.01.2017
12:29:05
я юзаю async чтоб максимально утилизировать ресурсы cpu при наличии выского выюзывания io сети

Roman
31.01.2017
12:29:24
@zartsoft а что в винде с asyncio?

Alexey
31.01.2017
12:29:32
Ну это же интересно
Там не только Армин, там и Бизли в своём докладе говорил, что не особо врубается в asyncio

Roman
31.01.2017
12:29:37
точнее, IOCP там рабочее?

Roman
31.01.2017
12:29:42
в венде юзается select
select - это вообще такой себе fallback вариант
все знают о его недостатках, но работает он там, где другие ещё не успели. Правда, как оно во всяких там солярках и прочих экзотиках хз

Zart
31.01.2017
12:31:30
вот та херь что добавляет uvloop в асинкио - вроде как юзает иоцп на винде

Google

Zart
31.01.2017
12:32:21
селект вообще эффективнее полла на небольшом колве сокетов насколько я помню
а обычный полл один хрен неуклюж

Roman
31.01.2017
12:54:45
пишут, что не работает

Eugine
31.01.2017
12:55:36
нету там iocp
а какой еще смысл в libuv, по сравнению libev?
если там не работает iocp
я думал его изначально написали как раз из-за того что libev толком не работает на винде

Roman
31.01.2017
12:56:46

Eugine
31.01.2017
12:56:46
ну то есть понятно как работает
осознал

Zart
31.01.2017
12:57:11
ы
опять всё через жопу, кроме клизмы

/dev
31.01.2017
13:38:05

Cykooz
31.01.2017
13:39:27

Alexey
01.02.2017
05:38:19

Zart
01.02.2017
07:21:31
веблядь

Stanislav
01.02.2017
07:22:10
веблядь
Зарт, а что ты на питоне делаешь?

Igor
01.02.2017
07:22:31
как раз вчера было
у меня дочка умеет открывать консоль разработчика в браузере и херачить в js-консоль. я боюсь что вырастет джабаскриптер. сможете сделать с этим что-нить?

Alexey
01.02.2017
07:22:59
:D

Google

Agaliar3pt
01.02.2017
07:31:18

Igor
01.02.2017
07:35:00

Agaliar3pt
01.02.2017
07:37:42
Скорее всего поздно что-либо менять
С моей сестрой так же было

Vadim
01.02.2017
07:55:41

Alexey
01.02.2017
09:20:07
http://www.1c-bitrix.ru/composite/
О_О

Johnnie
01.02.2017
09:26:02
0.4 против 4.5, где х100?

Alexey
01.02.2017
09:27:38
ВЫ НИЧЕГО НЕ ДОКАЖЕТЕ
СПЕРВА ДОБЕЙСЯ

H
01.02.2017
09:27:45
т.е. они сделали в битриксе, что оно работает НОРМАЛЬНО и продают это?

Roman
01.02.2017
11:48:07
херассе

Alexey
01.02.2017
11:48:59
Хэдхантеры в чате?
Все в окопы, пацаны, джангистская тревога!

Milton
01.02.2017
11:58:23
Нужен бот, предупреждающий о хантерах
И трущий посты в чатах, где админ включил затирание

Dmitry
01.02.2017
12:23:55
«Я все еще получаю письма, в которых меня спрашивают, как работает та или иная функция, — говорит buro9. — А я понятия не имею, это был PERL».