@ru_python

Страница 5895 из 9768
Suren
11.07.2018
12:01:00
Потому что слип тормозит поток, в котором обрабатывается?
я образно про слип. можно пустить цикл обработки к примеру

Jentry
11.07.2018
12:01:29
нет
Что нет, когда да) asyncio.sleep нет

Suren
11.07.2018
12:01:42
Что нет, когда да) asyncio.sleep нет
мне не сон нужен, а синхронная обработка данных

Google
Aragaer
11.07.2018
12:02:48
я чот не понял в чем проблема

если есть корутина, после окончания которой надо вызвать обработку, почему бы это просто не сделать?

Cykooz
11.07.2018
12:03:33
мне не сон нужен, а синхронная обработка данных
В твоём примере только одна "асинхронная" функция - process_request. Всё остальное - это синхронка, несмотря на то что там стоит async. Потому что нигде нет вызова await.

Suren
11.07.2018
12:03:37
я чот не понял в чем проблема
если внутри асинк функции затянется обработка данных, то нужно "уведомить", а call_later не отрабатывается так как луп заблокирован синзронной обработкой

Nikolay
11.07.2018
12:03:44
Что нет, когда да) asyncio.sleep нет
ты неправ что в случае потоков, что в случае asyncio

Cykooz
11.07.2018
12:03:48
И потому не понятно чего ты ждёшь

Nikolay
11.07.2018
12:03:51
и проблема вообще не в этом

Aragaer
11.07.2018
12:04:08
алярм можно поставить

что именно надо сделать, когда таймаут пройдет?

Nikolay
11.07.2018
12:04:40
мне не сон нужен, а синхронная обработка данных
если у тебя функция тяжелая синхронная будет ожидаться, то единственный выход - run_in_executor()

Suren
11.07.2018
12:04:50
В твоём примере только одна "асинхронная" функция - process_request. Всё остальное - это синхронка, несмотря на то что там стоит async. Потому что нигде нет вызова await.
если я внутри some_long_fun сделаю await другой функции, внутри которой "долгое" исполнение - результат будет тем же если внутри будет работа, например, с тем же aiohttp, то, вероятно, он не будет блокировать луп. но тут задача же обработать любой случай

алярм можно поставить
вот и думаю сигналом сделать

Google
Cykooz
11.07.2018
12:05:40
Т.е. должно делать какие то асинхронные IO операции например

Cykooz
11.07.2018
12:06:05
У тебя loop блочится в функции some_long_fun, и пока она не завершится - ничего другого выполняться не будет

Aragaer
11.07.2018
12:06:33
может тогда просто треды взять?

Suren
11.07.2018
12:07:03
может тогда просто треды взять?
не хочу миксовать с asyncio

Cykooz
11.07.2018
12:07:17
Если тебе для "теста", для "эмуляции" - то юзай await asyncio.sleep(). Либо используй executor

Nikolay
11.07.2018
12:07:39
Aragaer
11.07.2018
12:07:41
а с сигналами хочешь

Nikolay
11.07.2018
12:08:19
не хочу миксовать с asyncio
тогда у тебя нет вариантов для запуска долгих функций

VLadimir
11.07.2018
12:08:51
Всем привет, ребяки подскажите CVSReader pip пакет для чтения больших файлов

Настасья
11.07.2018
12:08:58
VLadimir
11.07.2018
12:09:20
да да CSV сорян

Nikolay
11.07.2018
12:09:28
да да CSV сорян
тогда pandas

VLadimir
11.07.2018
12:09:41
Эммм другой вариант есть еще

Nikolay
11.07.2018
12:10:00
это самый продвинутый

VLadimir
11.07.2018
12:10:14
Хм, тогда в Питоне все печально

Nikolay
11.07.2018
12:10:16
что тебе именно нужно?

Google
Nikolay
11.07.2018
12:10:31
Хм, тогда в Питоне все печально
наоборот, это отличная штука, которую все датасаентисты используют

VLadimir
11.07.2018
12:10:52
сейчас сек

Denis
11.07.2018
12:16:35
А стандартный разве не умеет большие построчно читать?

Cykooz
11.07.2018
12:16:38
Всем привет, ребяки подскажите CVSReader pip пакет для чтения больших файлов
А в чём проблемы с чтением у встроеного в питон? Он тебе любой прочитает, последовательно. А вот куда ты будешь прочитанные данные запихивать, хранить и обрабатывать - это наверное не забота "читалки" csv-файла.

Nikolay
11.07.2018
12:19:59
А стандартный разве не умеет большие построчно читать?
построчно и не нужно, это дико медленно

Quasar
11.07.2018
12:21:06
rambling
11.07.2018
12:23:08
динамическая типизация - вот шо печально

VLadimir
11.07.2018
12:25:50
@Enchantner разобрался проблема была lineterminator='\n' параметре pandas.read_csv я поставил lineterminator='\r' из-за этого он вис, мой косяк. Спасибо, то откликнулись на помощь

Cykooz
11.07.2018
12:26:25
построчно и не нужно, это дико медленно
В каком смысле медленно? А как какая то другая читалка будет по другому парсить CSV? Разобъёт текст на строки и запустит 10 потоков, что бы они параллельно распарсили этот список? Боюсь на обычном HDD скорость чтения с диска будет сильно медленее, чем сам парсинг строк.

Cykooz
11.07.2018
12:27:30
Я не думаю что питон читает данные с диска с точностью до байта. Всяко где то есть буффер, который вычитывает минимум сразу целый сектор с диска или даже больше

Так, что получается примерно тоже самое - блочное чтение с диска

Nikolay
11.07.2018
12:28:15
Я не думаю что питон читает данные с диска с точностью до байта. Всяко где то есть буффер, который вычитывает минимум сразу целый сектор с диска или даже больше
согласен, но ты ж не будешь спорить, что чтение с разбиением по строкам генератором гораздо медленнее, чем чтение большого блока в память, а потом поиск в нем переносов строк?

Aragaer
11.07.2018
12:29:05
"чтение" это тот же самый поиск переносов, но еще и копирование в "результат"

Cykooz
11.07.2018
12:30:06
Не знаю как в питоне сделано. Но вполне оптимально делать как просто чтение потока данных, с одновременной разбивкой на колонки и "отсечением" строк когда приходит, например, символ "\n"

И не надо ничего сначала вычитывтаь в память, а потом что то в ней искать

Только если не требуется распараллеливание по ядрам проца

Aragaer
11.07.2018
12:31:51
это не в питоне, это вообще на уровне операционки скорее

Google
Cykooz
11.07.2018
12:32:12
Ну врятли операционка парсит CSV ?

Aragaer
11.07.2018
12:32:23
но я могу только про линукс сказать

не, я про файл в целом

Admin
ERROR: S client not available

Cykooz
11.07.2018
12:32:44
Файл по строкам - скорее всего выплёвывает тоже какой то код внутри питона (возможно что написанный на С)

Aragaer
11.07.2018
12:33:28
ты хочешь открыть файл и где-то отмечается, что в такой-то части адресного пространства системы этот файл целиком должен быть. Ты читаешь, идет обращение к этой памяти, пэйдж фолт и страница подгружается с диска

мемори мап всего лишь маппит эти страницы дискового кэша тебе в адресное пространство процесса

Cykooz
11.07.2018
12:36:10
И что будет дальше процесс делать с этим блоком? Всё равно ведь последовательно проходить его символ за символом, находя "начало" и "конец" колонок и каждой строки.

Aragaer
11.07.2018
12:36:37
а это уже вопрос к процессу 8)

файл в памяти

или точнее заявлен - реально уже будет подкачиваться по мере обращения

и выгружаться если вдруг физическая память начинает кончаться

Nikolay
11.07.2018
12:38:09
два чаю этому господину

Cykooz
11.07.2018
12:38:15
Поточная обработка - это самый оптимальный вариант (если в один поток), т.к. надо только один раз пройти по всему блоку, что бы выдать все результаты. А раз у нас всё равно идёт "поточная" обработка - то самому парсеру совершенно филетово мапится память на диск или нет. Он перекладывает эту "боль" оптимизации чтения с диска на операционку.

VLadimir
11.07.2018
12:38:41
@Enchantner еще такой вопрос работали ли вы с pypy транслятором и есть ли смысл переходить на него при работе с Django, flask дает ли он сущетвенный прирост??

Aragaer
11.07.2018
12:38:51
ну просто нашли о чем спросить человека, специализирующегося на эмбеддед и операционках

Nikolay
11.07.2018
12:39:23
профита будет не очень много, а гемора по отладке может получиться немало

Aragaer
11.07.2018
12:40:05
я с торнадой пробовал, вроде профит был

Nikolay
11.07.2018
12:40:13
с торнадой да, может быть

Google
Nikolay
11.07.2018
12:40:16
и с gevent

Зло
11.07.2018
12:43:10
Нужен обменник для телеграмма

Зло
11.07.2018
12:43:40
Код надо

Nikolay
11.07.2018
12:44:09
@ru_python_beginners

Алексей
11.07.2018
12:44:44
Зло
11.07.2018
12:45:30
На гите нашёл пару но запустить не получается

Jentry
11.07.2018
12:45:43
@Enchantner еще такой вопрос работали ли вы с pypy транслятором и есть ли смысл переходить на него при работе с Django, flask дает ли он сущетвенный прирост??
На асинхронщине будет прирост, так как дорогая диспетчеризация оптимизируется, с синхронщиной не так заметно, но зависит от того, что делаешь - драйвер базы и json и без этого на си/ситон написаны

Проксимов
11.07.2018
12:45:58
@ru_python_beginners
Вполне себе вопрос для этого чата

Nikolay
11.07.2018
12:46:20
Вполне себе вопрос для этого чата
судя по уровню, на котором он задан, - не очень

Страница 5895 из 9768