2009-10-11 3 views
2

Это довольно общий вопрос ..аппаратная среда для выполнения компиляции

Какие аппаратные настройки лучше всего подходит для больших C/C++ компиляции заданий, как ядро ​​Linux или приложений?

Помню, что прочитал сообщение Джоэла Спольского о экспериментах с твердотельными дисками и тому подобным.

Должен ли я иметь больше мощности процессора или больше оперативной памяти или быстрое решение IO для жесткого диска, например, твердотельное состояние? Было бы, например, удобно иметь «нормальный» жесткий диск для стандартной системы, а затем использовать твердое состояние для компиляции? Или я могу просто купить много оперативной памяти? И насколько важен центральный процессор, или он просто сидит вокруг большей части времени компиляции?

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

Вот некоторая информация о выпуске SSD

ответ

2

Я думаю, что вам нужно достаточно всего. CPU очень важен, и компиляции могут быть легко распараллелены (с make -j), поэтому вам нужно как можно больше процессорных ядер. Тогда оперативная память, вероятно, так же важна, так как она предоставляет больше «рабочего пространства» для компилятора и позволяет буферизировать IO. Наконец, конечно скорость привода, вероятно, наименее важна из трехъядерного кода, большая, но не , что большой.

+0

Говоря о памяти, это, скорее всего, подразумевает, что у меня должно быть быстрое соединение между процессором и оперативной памятью. В последние годы я использовал портативный компьютер, поэтому я не в курсе последних событий. Я ухожу со стандартной потребительской материнской платы? –

2

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

Производительность жесткого диска, вероятно, превысит список. Я бы держался подальше от твердотельного диска, поскольку они рассчитаны только на большое количество ограниченных операций записи, а циклы make-clean-build будут забивать его.

Что еще более важно, можете ли вы использовать параллельную или общую среду сборки - из памяти ClearCase и Perforce были механизмы для обработки общих сборок. Если у вас нет параллельной системы сборки, наличие нескольких процессоров будет довольно бессмысленным

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

+1

Срок службы SSD теперь не является проблемой. Я тоже об этом беспокоился, но современные твердотельные накопители имеют продолжительность жизни в каждой ячейке около миллиона записей. Вы можете взять текущий SSD с типичным размером, скоростью записи и регулятором износа, а также непрерывной записи 24x7 в течение многих лет без проблем. Время сборки является ограничивающим фактором для многих людей.Я работаю над кодовой базой около 20 миллионов строк C, и часто приходится перестраивать ее с нуля, иногда несколько раз в день. Оба варенья (от Perforce) и gnu поддерживают параллельные сборки. Я анализирую все это на своем блоге. –

+0

Спасибо, это приятно знать. –