# ChainComplex() runs 24 times slower than homology()

I load a list of matrices `bdrs`

representing a chain complex, their dimensions are
{1, 21, 210, 1330, 5985, 20349, 54264, 116280, 203490, 293930, 352716, 352716, 293930, 203490, 116280, 54264, 20349, 5985, 1330, 210, 21, 1}, and the largest has density 3.91*10^-6. In total they take up 50MB of disk space. This finishes in 63sec.

When I run `chcx=ChainComplex(bdrs,base_ring=GF(2))`

, it takes 7hrs20min, but `chcx.homology()`

finishes in only 18min. **Why does it take so long to just store a few matrices?** At first I thought that `ChainComplex()`

also does some simplifications/reductions, but `[chcx.free_module_rank(i) for i in range(0,21)]`

shows the original dimensions of matrices :/.

**Is there a faster way to compute the homology** of a chain complex (over $\mathbb{Z}$ or $\mathbb{Z}_p$)?