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

Любой, кто сталкивается с этим в 2015 году или за его пределами (кто не хочет платить за ReSharper или CodeRush , который больше не имеет бесплатной версии ), следующее бесплатное расширение добавляет эту функцию: Подслововая навигация

(В качестве альтернативы расширение VSTricks включает в себя подслововую навигацию в своем списке отличных функций.)

Подслово На странице состояния навигационного проекта:

Посмотрите Edit.Subword в привязках к клавиатуре, чтобы установить настройки.

blockquote>

Вот как я установил его в Visual Studio 2012:

  1. Перейдите в меню «Сервис»> «Параметры»> «Среда»> «Клавиатура»
  2. В разделе «Показать команды, содержащие» введите Edit.Subword
  3. Для перемещения на верблюдах вправо Выберите Edit.SubwordNext В разделе «Использовать новый ярлык в» выберите «Текстовый редактор» в разделе «Нажмите сочетания клавиш», нажмите ALT + Стрелка вправо Нажмите «Назначить» и перезаписать существующий ярлык (сначала перепишите существующий ярлык, если вы Не хочу терять shortcut)
  4. Для перемещения на верблюдах влево Выберите Edit.SubwordPrevious В разделе «Использовать новый ярлык в» выберите «Текстовый редактор» в разделе «Нажмите сочетания клавиш», нажмите ALT + Стрелка влево Нажмите Назначьте и перезапишите существующий ярлык (сначала переименуйте существующий ярлык, если вы не хотите потерять этот ярлык)
  5. Для выбора верблюжьих правых Выберите Edit.SubwordNextExtend В разделе «Использование новый ярлык в ", выберите« Текстовый редактор »в разделе« Нажмите сочетания клавиш », нажмите ALT + SHIFT + Стрелка вправо Нажмите« Назначить и перезаписать существующий ярлык »(сначала переименуйте существующий ярлык, если вы не хотите потерять этот ярлык)
  6. Для выбора верблюдов слева Выберите Edit.SubwordPreviousExtend В разделе «Использовать новый ярлык в» выберите «Текстовый редактор» в разделе «Нажмите клавиши быстрого доступа», нажмите ALT + SHIFT + Стрелка влево Нажмите «Назначить и перезаписать» существующий ярлык (сначала переназначить существующий ярлык, если вы не хотите потерять этот ярлык)
  7. Для удаление верблюжьей стрелки вправо Выберите Edit.SubwordDeleteNext В разделе «Использовать новый ярлык в» выберите «Текстовый редактор» в разделе «Нажмите клавиши быстрого доступа», нажмите ALT + DELETE. Нажмите «Назначить» и перезапишите существующий ярлык (сначала переназначьте существующий ярлык, если вы не хотите потерять этот ярлык)
  8. Для удаления верблюдов слева Выберите Edit.SubwordDeletePrevious В разделе «Использовать новый ярлык в» выберите «Текстовый редактор» в разделе «Нажмите сочетания клавиш», , нажмите ALT + BACKSPACE Нажмите «Назначить и перезаписать существующий ярлык» (сначала переименуйте существующий ярлык, если вы не хотите потерять этот ярлык)

24
задан user124114 3 February 2013 в 21:02
поделиться

1 ответ

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

Есть более простой способ сделать это: просто поместить данные в файл. Например:

def target_fnc(arg):
    fd, path = tempfile.mkstemp(text=True)
    with os.fdopen(fd) as f:
        for i in xrange(1000000):
            f.write('dvsdbdfbngd\n')
    return path

def process_args(some_args):
    pool = Pool(16)
    for result in pool.imap_unordered(target_fnc, some_args):
        with open(result) as f:
            for element in f:
                yield element

Очевидно, что если ваши результаты могут содержать символы новой строки или не являются строками и т. Д., Вы захотите использовать файл csv, numpy и т. Д. Вместо простой текстовый файл, но идея та же.

Тем не менее, даже если это проще, обычно есть преимущества для обработки данных по частям за раз, поэтому разбивка ваших задач или использование Queue (как предлагают два других ответа) может быть лучше, если недостатки (соответственно, необходимость разбить задачи или иметь возможность использовать данные так же быстро, как они создаются) не являются нарушителями соглашения.

4
ответ дан abarnert 3 February 2013 в 21:02
поделиться
Другие вопросы по тегам:

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