Хуже производительность с несколькими потоками в C ++ [duplicate]

Я изначально наткнулся на этот вопрос, подумав, что можно использовать для этих фантастических рабочих деревьев. С тех пор я включил их в свой рабочий процесс и, несмотря на свой первоначальный скептицизм, я пришел, чтобы найти их весьма полезными.

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

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

4
задан Fire3galaxy 24 February 2016 в 04:08
поделиться

1 ответ

Если доступно несколько ядер, и вы используете несколько потоков, то потенциально несколько потоков одновременно выполняются на разных ядрах. Поскольку clock() измеряет время процессора, оно может продвигаться быстрее, чем время настенного времени, потому что несколько потоков продвигают его одновременно.

Так же, как пример, приведенный в документации, - он показывает два потока, созданные, и clock(), почти вдвое больше, чем указано в таблице времени.

3
ответ дан MuertoExcobito 20 August 2018 в 07:35
поделиться
Другие вопросы по тегам:

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