Source

trabalho_dvcs / performance.tex

\subsection{Comparação de Performance}

A Python Software Foundation (PSF) fez uma comparação de performance e facilidade de uso dos três principais DVCS e do seus VCS corrente (Subversion)\cite{Canon:2009p1282} para saber se uma migração para algum deles os levariam a maior facilidade no desenvolvimento dos seus softwares. Os resultados foram quase todos positivos para os sistemas distribuidos e em Abril de 2009 eles escolheram o Mercurial como novo VCS.

Um dos testes de performance que eles fizeram foi qual é o tempo para um desenvolvedor que ainda não tem uma working copy do repositório na sua maquina para baixa-la do repositório mestre da PSF. Foram feitos os testes de dois locais, São Francisco que é próximo de onde o servidor é hospedado e Vancouver no Canadá. Os resultados\ref{tabperf:1} foram que tanto o Mercurial quando o GIT só dobraram o tempo que já é necessário hoje para conseguir uma working copy mas como todos os DVCS eles trazem junto todo o histórico de modificações, e inclusive em empaço o GIT consegue usar menos espaço que o Subversion. O Bazaar ainda apresenta alguns problemas de performance principalmente, levando em um caso mais de dez vezes mais tempo que se fosse usando o Subversion.

\begin{table}[h]
\centering
\begin{tabular}{lrrr}
\hline
VCS & São Francisco & Vancouver & Espaço\\
\hline
Subversion & 1:04 & 2:59 & 139 MB\\
Bazaar & 10:45 & 16:04 & 276 MB\\
Mercurial & 2:30 & 5:24 & 171 MB\\
GIT & 2:54 & 5:28 & 134 MB\\
\hline
\end{tabular}
\caption{Tempo para download e tamanho do repositório para cada VCS}
\label{tabperf:1}
\end{table}

Outro teste foi na recuperação do log completo de revisões de um arquivo, nesse caso o README do repositório do interpretador do Python, os resultados\ref{tabperf:2} não incluem o subversion porque esse precisaria de uma chamada ao repositório central o que pode tomar um tempo variavél (mas muito maior do que uma pesquisa local). Os resultados denovo mostram o Baazar como um sistema relativamente mais lento que os outros e tanto o GIT como o Mercurial com velocidades próximas.

\begin{table}[h]
\centering
\begin{tabular}{lr}
\hline
VCS & Tempo\\
\hline
Baazar & 4.5s\\
Mercurial & 1.1s\\
GIT & 1.5s\\
\hline
\end{tabular}
\caption{Tempo para executar uma operação de log em um arquivo}
\label{tabperf:2}
\end{table}