У меня нет цифр, но я могу сказать вам, где мы заметили проблемы с производительностью.
В наших сборках обычно используется 30-40K файлов из системы контроля версий. В моей рабочей области в настоящее время есть более 66 КБ файлов, включая промежуточные и выходные файлы сборки, размером более 15 ГБ. Чтобы AccuRev работал быстро, мы агрессивно используем игнорировать элементы , поэтому AccuRev игнорирует любые промежуточные файлы, такие как * .obj. Кроме того, мы используем оптимизация отметки времени . Как правило, обновление выполняется быстро, но размер проекта обычно составляет 5-10 человек, поэтому, как правило, при обновлении ежедневно выходит только пара десятков файлов. Даже если кто-то внес изменения, которые коснулись большого количества файлов, скорость не является проблемой. С другой стороны, полное заполнение всех 30K + файлов происходит медленно. У меня нет времени, так как я редко делаю это, и в редких случаях я управляю населением, когда я иду на обед или на встречу. Я ожидаю, что это может быть целых 10 минут. В общем случае исходные файлы выходят очень быстро, но у нас есть несколько больших двоичных файлов размером 10-20 МБ, каждый из которых занимает пару секунд.
Если правила исключения и элементы игнорирования настроены неправильно, AccuRev может потребоваться несколько минут для запуска обновления для рабочих пространств такого размера. Когда я слышу, что другие разработчики жалуются на скорость, я знаю, что что-то неправильно настроено, и мы исправляем это.
Примерно год назад один из проектов обновил Boost 25K + файлами, а также добавил FireFox в хранилище (не обращайте внимания на размер, но заставил Boost выглядеть маленьким.) Они также добавили ICU, написали много программного обеспечения и изменили бесчисленное количество файлов. Всего я помню, что в потоке было около 250K + файлов. К сожалению, я решил, что весь их хороший код должен быть переведен в корень, чтобы все проекты могли делиться. Это оказалось немного за пределами того, что AccuRev мог справиться хорошо. Это был многочасовой процесс продвижения всех изменений. Насколько я помню, после продвижения FireFox все прошло гладко - возможно, проблема заключалась в одной транзакции с более чем 100K-файлами?
Я недавно обновил boost и поэтому должен был хранить и продвигать 25K + файлов. Это заняло минуту или две, но не без оснований, учитывая количество файлов и размер двоичных файлов.
Что касается количества потоков, у нас есть более 800 потоков и рабочих пространств. Производительность здесь не проблема. В общем, мне трудно ориентироваться в большом количестве потоков, поэтому я запускаю отфильтрованное представление только моих рабочих пространств и нужных мне потоков. Однако, когда мне нужно взглянуть на нефильтрованный список, чтобы найти что-то хорошее, производительность *. 1015 *
В заключение отметим, что поддержка AccuRev потрясающая - мы называем их голосом в небе. Время от времени мы стреляем себе в ногу, используя AccuRev, и не понимаем, как все исправить. Почти всегда мы делали что-то глупое, а потом пытались что-то тупее исправить. В конце концов мы размещаем запрос в службу поддержки, и затем мы узнаем, что они ведут нас через шаги к праведности либо по телефону, либо на встречу. Я даже связался с ними по поводу тривиальных вещей, о которых у меня просто нет времени выяснить, так как у меня беспокойный день, и они любезно проводят меня, а не рассказывают RTFM.