
Iliya
13.03.2019
07:45:38
жесть какая-то на самом деле
Есть такое, я думал руками эксельку по 100к разбить, было бы 11 штук, но потом прикинул, что 100к не потяне бд, макс наверно 50, а это уже дофига разбивать
хотя можно срипт накидать, он мне файл и разобьет и пройтись по файлам и не париться - это простой вариант, но мы же не ищем легких путей :)

Tishka17
13.03.2019
07:46:07
ну дя такого конечно проще взять то, что я накидал, либо со списком
1м в память влезет без проблем

Iliya
13.03.2019
07:46:48
да, сейчас сижу адаптирую, потом протестю на 101к
Конечно влезет, лаганет чуть сабл, но пройдет

Google

Tishka17
13.03.2019
07:47:20
чуть добавил шаг, чтобы было удобнее тестить
mlist = [1,2,3,4,5,6,7,8,9,0,19]
step = 5
count = len(mlist)//step + 1 if len(mlist)%step else 0
for i in [ mlist[i*step:i*step+step] for i in range(count) ]:
print(i)
Интересно, что с этим кодоп по производителности
да не, возьми исходный и скобки на круглые замени в comprehension

Iliya
13.03.2019
07:47:41

Tishka17
13.03.2019
07:47:45
ну да
нафиг тебе список списков

Iliya
13.03.2019
07:48:28

Dmitriy
13.03.2019
07:50:12
Я извиняюсь, где чат для нубов?)

Tishka17
13.03.2019
07:50:56

Dmitriy
13.03.2019
07:51:03
Благодарю

Tishka17
13.03.2019
07:51:27
оказалось многое не знает =)

Iliya
13.03.2019
07:51:54
слышал про такого :) кажется даже знаком

Dmitriy
13.03.2019
08:06:05
привет. ребята, есть где-то чат по поиску работы на Python?

Проксимов
13.03.2019
08:07:50

Google

Dmitriy
13.03.2019
08:08:12
спасибо!

bv
13.03.2019
08:11:06
ребят приветствую.
В чем отличие multiprocessing lock от threading lock.
Я к тому что например в потоках будет multiprocessing lock работать. Или если внутри процессов идет деление на потоки то внутри надо уже использовать threading lock

Anton
13.03.2019
08:12:24
Может кто-то объяснить, или мануал кинуть, особенности работы оператора % - почему 15%2 получается 1, а не 5? Python 3.7.2, винда

Tishka17
13.03.2019
08:13:37
% - остаток от деления
Хз как ты 5 получил

Anton
13.03.2019
08:14:25
15/2 будет 7,5

Tishka17
13.03.2019
08:14:27

Anton
13.03.2019
08:14:46
А блин
все сам натупил
Утро

Tishka17
13.03.2019
08:15:25
А то я уже скоро полный набор видео для 3-5 классов соберу
Утро, ага

Anton
13.03.2019
08:15:38
Мне дробная часть нужна была просто

Shieldy
13.03.2019
08:15:56
Добро пожаловать, Надир!
Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

bv
13.03.2019
08:16:08

Tishka17
13.03.2019
08:16:14

Anton
13.03.2019
08:16:29
Нет)

Tishka17
13.03.2019
08:19:01
Нет)
Тогда посмотри что там у Decimal

Google

Tishka17
13.03.2019
08:19:29
Только зачем тебе и процессы и треды и везде локи
с большой вероятностью лок вообще не нужен

bv
13.03.2019
08:20:57

Tishka17
13.03.2019
08:21:25

bv
13.03.2019
08:21:50
потомучто если часто брать из очереди без локов то очередь тупит

Tishka17
13.03.2019
08:21:58
0_о

bv
13.03.2019
08:22:16
вот те крест

Tishka17
13.03.2019
08:22:19
очередь уже с локами внутри

bv
13.03.2019
08:22:33
да
хммм
а почему тогда тупит
хмммм

Tishka17
13.03.2019
08:23:01
может тупит не она? =))

bv
13.03.2019
08:23:15
я вобще заметил если типо после очереди не добавить секунды две задержки то потоки стопоряться

Tishka17
13.03.2019
08:23:28
эээ

bv
13.03.2019
08:24:20
нет скрипт обкатан , я конешно не гуру программирования. может что то и пишу не правильно но добавиви задержку в 2 сккуднды скрипт перестал тупить

Tishka17
13.03.2019
08:24:33
давай с потоками сначала. Ты уверен что 3 по 3 быстрее чем 9 процеессов?
у тебя там работа с сетью или что?

bv
13.03.2019
08:26:04
ну я рассуждал так , количество процессов по хорошему должно быть не больше чем процессов на сервере, у меня их 32 , я сделал 30 процессов , и они типо параллельно работают, а потом решил попробывать внутри добавить потоки , ради эксперемента

Google

bv
13.03.2019
08:26:07
да с сетью
и посмотреть
плюс у меня один п процесс 31 следит за данными и обновляет их

Tishka17
13.03.2019
08:27:54
ну процессы от потоков отличаются только доступом к обещй памяти. А потоки в птионе ещё и с GIL

bv
13.03.2019
08:28:10
ну вот я так и рассужда

Tishka17
13.03.2019
08:29:21
короче, хз что у тебя там с очередью

bv
13.03.2019
08:29:38
типо в процессах gil нету, они будут максимально параллельно работать ну кроме места где они очередь там синхронизаци , и внутрь запустить еще пару потоков и посмотрть что будет

Shieldy
13.03.2019
08:32:11
Добро пожаловать, @ssnowwman!
Не забудь ознакомиться с правилами чата. Ссылка в описании группы.

Artur Rakhmatulin
13.03.2019
08:35:52

Tishka17
13.03.2019
08:36:31

Artur Rakhmatulin
13.03.2019
08:36:43

bv
13.03.2019
08:39:15
запили на asyncio и iohttp
так при асинхроном программирование тот же gil просто код асинхронно выполняется разницы я шибко не вижу
как я понимаю операции будут выполнятся попорядку и какая первая выполнится она освободит ресурсы для следующей
я ды на гоу написал но нельзя из за стека

Artur Rakhmatulin
13.03.2019
08:40:39

bv
13.03.2019
08:41:25
но спасибо за идею))

Artur Rakhmatulin
13.03.2019
08:41:51
корошо

Google

bv
13.03.2019
08:42:20
ну несовсем тесты , сайт граблю

Artur Rakhmatulin
13.03.2019
08:42:41
я бы на самом деле попробовал и так и так, если есть время ?

bv
13.03.2019
08:42:55
ну тоже мысль согласен )))

Artur Rakhmatulin
13.03.2019
08:43:13

bv
13.03.2019
08:43:25
я если честно асинхронщину еще не писал , так чтоб плотно , только поверхностно но наслышан что библеотека очень хорошая))

Artur Rakhmatulin
13.03.2019
08:44:31
там нисложно. только нужно будет все в асинхронщину оборачивать, иначе толку не будет
на пол-федора не получится

bv
13.03.2019
08:46:28
спасибо))

Nobody
13.03.2019
08:48:18
привет всем
такой вопрос: я конверчу xml в датафрейм панды для последующего анализа, для этого беру элемент артикл, собираю с него данные в словарь и кидаю во фрейм, заметил что в начале тысяча итераций работают секунд по двадцать, потом замедляются, на двадцатой тыще тысяча проходит уже за минуту
и жрёт шесть гигов, при xml файле размером в 170 метров
for article in file.getroot().xpath("//ARTICLE"):
ean_with_prices = dict()
channel = ''
for element in article.iter():
if element.tag == "A_NR":
ean_with_prices['A_NR'] = element.text
if element.tag == "A_PRICE":
channel = element.get("channel")
if element.tag == "A_VK":
ean_with_prices[channel] = element.text
dataframe = dataframe.append(ean_with_prices, ignore_index=True)
в чём может быть проблема?
xml парсю с lxml

Artur Rakhmatulin
13.03.2019
08:50:15

Tishka17
13.03.2019
08:51:17