170 похожих чатов

Применил вроде бы все советы из чата, скорость улучшилась только

до 22 минут на 100тыс записей
Единственное не смог применить совет @evle_zzz про контекстный менеджер, т.к не очень понял как передавать туда n. Вместо этого закрываю файл вручную

Не подскажете остались ли еще какие-то узкие места которые не учел? Вот текущий код

for row in reader: #csv.reader

cur_row = []
for s in zip(row, order):
cur_row.append(get_hash(s[0]) if s[1][1] else s[0])
writer.writerow(cur_row)


if n % 100000 == 0:
now = datetime.now()
while last_time and last_time == now:
time.sleep(5)
now = datetime.now()
last_time = now
if fw:
fw.close()
new_filename = f'{now}.csv'
out_path = os.path.join('out', new_filename)
fw = open(out_path, 'w', encoding='utf-8')
writer = csv.writer(fw, delimiter=';')

n += 1

15 ответов

8 просмотров

Передавать — параметром. Ты ж в open имя файла передаёшь как-то, вот будет маска файла и количество.

Сергей- Автор вопроса
evle
Передавать — параметром. Ты ж в open имя файла пер...

надо попробовать, но мне кажется по сравнению с использованием просто close это не даст выигрыша по времени хотя код будет и красивее

А что тут действительно за цирк с sleep?

Сергей- Автор вопроса
evle
А что тут действительно за цирк с sleep?

Просто чтобы в имени нового файла было другое время (там минуты, я в коде это сократил), а как можно красивее написать это?

Сергей
Просто чтобы в имени нового файла было другое врем...

O_O. То есть вместо того чтобы придумать как имя файла формировать неповторяющееся, ты решил каждый раз продалбывать по 5 секунд? Гениально.

Сергей- Автор вопроса
evle
O_O. То есть вместо того чтобы придумать как имя ф...

Так указано в требованиях: файлы отличаются только временем

Сергей
Так указано в требованиях: файлы отличаются только...

Ну микросекунды добавь, если настолько взаимоисключающие параграфы. Это ж совсем дичь получилась.

Сергей- Автор вопроса
evle
Ну микросекунды добавь, если настолько взаимоисклю...

Детализация до минут. Почему дичь если одновременно обрабатывается только один файл (т.е спать скорее всего не придется)?

Сергей
Детализация до минут. Почему дичь если одновременн...

Такие требования надо уточнять. Если одновременно "не более стольки-то записей" и "файлы отличаются только именем" — кто-то облажался при постановке задачи. Не надо решать подобные вопросы методом "а подождём следующую минуту".

Сергей- Автор вопроса
evle
Такие требования надо уточнять. Если одновременно ...

Не специалист конечно но не вижу ничего ужасного в ожидании, если одновременно обрабатываем только один файл.. 22 минуты настораживают больше

Сергей- Автор вопроса
Сергей
Не специалист конечно но не вижу ничего ужасного в...

Тем более это явно на всякий случай, 100тыс явно больше минуты обрабатываются

Сергей
Не специалист конечно но не вижу ничего ужасного в...

Любое ожидание вида "нифига не делаем, хотя работы полно и её можно делать" — это косяк. Косяк совершенно непростительный.

Сергей
Тем более это явно на всякий случай, 100тыс явно б...

Компы ускоряются. Через какое-то время данных будет больше, кто-нибудь полезет это оптимизировать и будет удивлён.

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Any electron dev here?
Sayanth Tezro
12
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта