Почему PLINQ использует только два потока?

Согласно Документации Мерзавца мерзавец, чистый

, Удаляет неотслеженные файлы из рабочего дерева

, Шаг 1 должен показать то, что будет удалено при помощи -n опция:

# Print out the list of files which will be removed (dry run)
git clean -n

Чистый Шаг - остерегайтесь: это удалит файлы :

# Delete the files from the repository
git clean -f
  • Для удаления каталогов работайте git clean -f -d или git clean -fd
  • , Чтобы удалить проигнорированные файлы, работать git clean -f -X или git clean -fX
  • , Чтобы удалить проигнорированные и непроигнорированные файлы, работать git clean -f -x или git clean -fx

Примечание различие в случае на X для двух последних команд.

, Если clean.requireForce установлен на "истинный" (значение по умолчанию) в Вашей конфигурации, нужно определить -f иначе, ничего на самом деле не произойдет.

Снова посмотрите git-clean документы для получения дополнительной информации.

Опции

-f, --force

, Если переменная конфигурации Мерзавца clean.requireForce не установлена на ложь, чистый мерзавец откажется работать, если не дали -f, -n или -i.

-x

Don’t используют стандарт, игнорируют правила, прочитанные из .gitignore (на каталог) и $GIT_DIR/info/exclude, но действительно все еще используют проигнорировать правила, данные с [1 120] опции. Это позволяет удалять все неотслеженные файлы, включая продукты сборки. Это может использоваться (возможно в сочетании со сбросом мерзавца) для создания нетронутого рабочего каталога для тестирования чистой сборки.

-X

Удаляют только файлы, проигнорированные Мерзавцем. Это может быть полезно, чтобы восстановить все с нуля, но сохранить вручную созданные файлы.

-n, -dry-run

Don’t на самом деле удаляют что-либо, просто показывают то, что было бы сделано.

-d

Удаляют неотслеженные каталоги в дополнение к неотслеженным файлам. Если неотслеженным каталогом управляет различный репозиторий Мерзавца, он не удален по умолчанию. Используйте -f опция дважды, если Вы действительно хотите удалить такой каталог.

7
задан ripper234 3 June 2012 в 11:16
поделиться

3 ответа

PLINQ tries to find the optimal number of threads to perform what you want it to do as quickly as possible, if you only have 2 cores on your cpu, that number is most likely 2. If you had a quad core, you would be more likely to see 4 threads appear, but creating 4 threads on a dual core machine wouldn't really improve performance because only 2 threads could be active at the same time.

Also, with IO-based operations, it is likely that any extra threads would simply block on the first IO operation performed.

9
ответ дан 6 December 2019 в 15:23
поделиться

10 is maximum

Sets the degree of parallelism to use in a query. Degree of parallelism is the maximum number of concurrently executing tasks that will be used to обработать запрос.

Отсюда:

MSDN

4
ответ дан 6 December 2019 в 15:23
поделиться

Похоже, PLINQ настраивает количество потоков. Когда я заключил приведенный выше код в цикл while (true), для выполнения первых двух итераций потребовалось две секунды, а для выполнения третьей и выше - всего одну секунду. PLINQ понял, что ядра простаивают, и увеличил количество потоков. Впечатляет!

2
ответ дан 6 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

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