Domanda

In che modo le prestazioni nella versione corrente (4.7) di Accurev ?

  • tempo di checkout per 100 MB, per GB?
  • tempo di impegnarsi per # di file o mb?
  • reattività della GUI quando più di 100 stream?

Ho appena avuto una demo di Accurev e gli stream sembrano un modo leggero per modellare il flusso di lavoro attorno a codice / progetti. Ho sentito gente elogiare Accurev per il back-end dei flussi e lamentarsi delle prestazioni. Accurev sembra aver lavorato sulla performance, ma mi piacerebbe ottenere alcuni dati dal mondo reale per assicurarmi che non si tratti di demo-well-run-less-well.

Qualcuno ha aneddoti sulle prestazioni di Accurev o (anche migliori) dati dai test?

È stato utile?

Soluzione

Non ho numeri, ma posso dirti dove abbiamo notato problemi di prestazioni.

Le nostre build utilizzano in genere 30-40 KB di file dal controllo del codice sorgente. Nel mio spazio di lavoro al momento ci sono oltre 66 KB di file, inclusi file intermedi e di output di dimensioni superiori a 15 GB. Per far funzionare AccuRev in modo reattivo, utilizziamo in modo aggressivo gli ignora elementi in modo che AccuRev ignori qualsiasi file intermedio come * .obj. Inoltre utilizziamo l ' ottimizzazione del timestamp . In generale, l'esecuzione di un aggiornamento è rapida, ma le dimensioni del progetto sono in genere di 5-10 persone, quindi normalmente vengono rilasciate solo una dozzina di file se si aggiorna quotidianamente. Anche se qualcuno ha apportato modifiche che hanno toccato la velocità di molti file non è un problema. D'altra parte, un popolamento completo di tutti i file 30K + è lento. Non ho tempo da quando lo faccio raramente e nelle rare occasioni che faccio, corro il popolo quando vado a pranzo o ad una riunione. Mi aspetto che potrebbero durare fino a 10 minuti. In generale, i file sorgente scendono molto rapidamente, ma abbiamo alcuni file binari di grandi dimensioni, 10-20 MB, che richiedono un paio di secondi ciascuno.

Se le regole di esclusione e gli elementi ignorati non sono configurati correttamente, AccuRev può richiedere un paio di minuti per eseguire un aggiornamento per aree di lavoro di queste dimensioni. Quando sento parlare di altri sviluppatori che si lamentano della velocità, so che qualcosa non è configurato correttamente e lo chiariamo.

Circa un anno fa uno dei progetti ha aggiornato boost con 25K + file e ha anche aggiunto FireFox al repository (dimentica le dimensioni ma ha fatto sembrare piccolo il boost). Hanno anche aggiunto ICU, scritto un sacco di software e modificato innumerevoli file. In tutto ciò che ricordo c'erano circa 250K + file in uno stream. Purtroppo ho deciso che tutto il loro buon codice dovrebbe essere promosso alla radice in modo che tutti i progetti possano essere condivisi. Questo si è rivelato un po 'al di là di ciò che AccuRev poteva gestire bene. È stato un processo di più ore che ha promosso tutte le modifiche. Come ricordo una volta che fu promosso FireFox, il resto andò bene - forse il problema era forse una singola transazione con oltre 100K file?

Di recente ho aggiornato boost e quindi ho dovuto conservare e promuovere 25K + file. Ci sono voluti un minuto o due ma non irragionevoli considerando il numero di file e la dimensione dei file binari.

Per quanto riguarda il numero di stream, abbiamo oltre 800 stream e aree di lavoro. Le prestazioni qui non sono un problema. In generale trovo difficile navigare in un gran numero di stream, quindi eseguo una vista filtrata solo delle mie aree di lavoro e dei flussi che mi interessano. Tuttavia, quando ho bisogno di guardare l'elenco non filtrato per trovare qualcosa di buono,

Come nota finale, il supporto di AccuRev è eccezionale : li chiamiamo la voce nel cielo. Ogni tanto ci spariamo al piede usando AccuRev e ci ritroviamo senza sapere come sistemare le cose. Quasi sempre abbiamo fatto qualcosa di stupido e poi abbiamo provato qualcosa di più stupido per sistemarlo. Alla fine facciamo una richiesta di supporto e la prossima cosa che sappiamo ci stanno guidando attraverso i passi verso la giustizia o al telefono o ad una riunione. Li ho anche contattati per cose insignificanti che non ho il tempo di capire perché sto avendo una giornata frenetica e mi accompagnano gentilmente attraverso di loro piuttosto che dirmi a RTFM.

Altri suggerimenti

Modifica 2014: ora possiamo ottenere prestazioni X-Windows accettabili utilizzando la versione commerciale di RealVNC.

Commento originale: questa risposta si applica a qualsiasi versione di Accurev, non solo a 4.7. In primo luogo, le prestazioni della GUI potrebbero essere OK se è possibile utilizzare il client Web. Se non è possibile utilizzare il client Web e se si desidera ottenere prestazioni della GUI, è preferibile utilizzare Windows o disporre di tutti gli sviluppatori in un unico posto, ovvero dove si trova il server Accurev. Cerchi di eseguire la GUI su X-Windows su una WAN? Dimenticalo: la nostra esperienza è stata decine di secondi o minuti per le operazioni base di punta e clicca. Si tratta di una WAN abbastanza buona a circa 800 miglia di distanza, con un tempo di ping quasi ottimale. Questo non è un errore di Accurev, ma di X-Windows e probabilmente avrai problemi simili con altre applicazioni X su una WAN. Quindi evita la X di base, se possibile. Al momento non possiamo, e i nostri utenti WAN sono forzatamente relegati solo alla riga di comando. Il problema di base è che Accurev è centralizzato e non è possibile aumentare la velocità della luce. Ritengo che sia possibile aggirare la latenza WAN eseguendo Accurev Replication Server, ma ciò non risolve correttamente il problema se si dispone di sviluppatori remoti negli uffici di una sola persona tramite VPN. È ironico che i server di replica trasformino in qualche modo questo VCS centralizzato in una forma di DVCS. Se non si dispone di server di replica, una soluzione orribile ma alquanto praticabile consiste nell'utilizzare uno strumento di delta-sincronizzazione come rsync per sincronizzare l'albero dei sorgenti tra il computer locale in cui è possibile eseguire la GUI (ovvero la GUI in esecuzione direttamente sul proprio Laptop Windows o Linux) e la macchina su cui stai effettivamente lavorando (ad esempio una macchina UNIX a 1.000 miglia di distanza). Un'altra opzione è quella di utilizzare qualcosa come VNC che funziona meglio su una WAN rispetto a X, collegandosi a un desktop virtuale nella posizione del server Accurev e utilizzare X da lì. Nel mio posto di lavoro più di un team ha fatto ricorso all'utilizzo di Mercurial sul lato e alla promozione ad Accurev solo quando è strettamente necessario. Come sottolinea Stephen Nutt, altro lavoro necessario è utilizzare l'ottimizzazione del timestamp e ignorarla. Abbiamo anche i nostri amministratori Accurev (sì, richiede che tu impieghi persone per farla da baby-sitter) si lamentano quando dobbiamo includere un gran numero di file, nonostante costituiscano una parte fondamentale del nostro prodotto e DEVONO essere inclusi e controllati dalla versione. Trai le tue conclusioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top