  Uncovering the community structure exhibited by real networks is a crucial
step towards an understanding of complex systems that goes beyond the local
organization of their constituents. Many algorithms have been proposed so far,
but none of them has been subjected to strict tests to evaluate their
performance. Most of the sporadic tests performed so far involved small
networks with known community structure and/or artificial graphs with a
simplified structure, which is very uncommon in real systems. Here we test
several methods against a recently introduced class of benchmark graphs, with
heterogeneous distributions of degree and community size. The methods are also
tested against the benchmark by Girvan and Newman and on random graphs. As a
result of our analysis, three recent algorithms introduced by Rosvall and
Bergstrom, Blondel et al. and Ronhovde and Nussinov, respectively, have an
excellent performance, with the additional advantage of low computational
complexity, which enables one to analyze large systems.
