Компиляция с g ++ использующий несколько ядер

Прежде всего, это связано с удобством использования. Если вы используете наследование, класс Team будет выставлять поведение (методы), которые предназначены исключительно для манипулирования объектами. Например, методы AsReadOnly() или CopyTo(obj) не имеют смысла для объекта команды. Вместо метода AddRange(items) вы, вероятно, захотите получить более описательный метод AddPlayers(players).

Если вы хотите использовать LINQ, реализация универсального интерфейса, такого как ICollection<T> или IEnumerable<T>, имеет смысл .

Как уже упоминалось, композиция - это правильный путь. Просто реализуйте список игроков как приватную переменную.

166
задан fifi finance 19 June 2019 в 21:09
поделиться

5 ответов

Можно сделать, это с делает - с гну, делают, это - флаг-j (это также поможет на однопроцессорной машине).

, Например, если Вы хотите 4 параллельных задания от, сделайте:

make -j 4

можно также выполнить gcc в канале с

gcc -pipe

, Это конвейерно обработает этапы компиляции, которые также помогут заставить ядра напряженно трудиться.

, Если Вы имеете дополнительные машины в наличии также, Вы могли бы проверить distcc, который сдаст компиляции в аренду тем также.

230
ответ дан frankodwyer 23 November 2019 в 21:04
поделиться

Нет такого флага, и наличие выполнений того против философии Unix наличия каждого инструмента выполняет всего одну функцию и выполняет его хорошо. Порождение процессов компилятора является концептуально заданием системы сборки. То, что Вы, вероятно, ищете, является-j (задания), флаг к GNU делает, а-ля

make -j4

, Или можно использовать pmake, или подобная параллель делают системы.

41
ответ дан Lightness Races with Monica 23 November 2019 в 21:04
поделиться

Люди упомянули make, но bjam также поддержки подобное понятие. Используя bjam -jx дает bjam команду создавать [до 113] параллельные команды.

Мы используем те же сценарии сборки в Windows и Linux и использующий эту опцию половины наше время изготовления на обеих платформах. Хороший.

11
ответ дан MattyT 23 November 2019 в 21:04
поделиться

make сделает это для Вас. Займитесь расследованиями -j и -l переключатели в странице справочника. Я не думаю g++, parallelizable.

8
ответ дан rmeador 23 November 2019 в 21:04
поделиться

Я не уверен в g ++, но если Вы используете GNU, Делают тогда, "делают-j N" (где N является количеством потоков, делают, может создать), позволит, делают для выполнения multple g ++ задания одновременно (пока файлы не зависят друг от друга).

2
ответ дан Andy 23 November 2019 в 21:04
поделиться
Другие вопросы по тегам:

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