A general framework for collision detection is presented. Then, we look at each stage and compare different approaches by extensive benchmarks. The result suggest a way to optimize the performance of the overall framework. A benchmarking procedure for comparing algorithms checking a pair of objects is presented and applied to three different hierarchical algorithms. A new convex algorithm is evaluated and compared with other approaches to the neighbor-finding problem.