In the software Regina what I do is use Sylvester's law of inertia (as Fernando suggested above) on the characteristic polynomial.  The algorithm for computing the determinant we use has complexity of the order of $n^4$, but it seems to work quite effectively for the signature computations we've been doing so far.