Ich weiß ja nicht, was genau statistisch erfasst werden soll.
Ausgehend davon, dass nicht unbedingt erfasst werden muss, wie viele Bits GLEICHZEITIG an sind, könntest Du das ganze noch anders aufziehen.
Möglicherweise kannst Du dann in Deiner Schleife ganze Bytes oder Wörter auf "0" vergleichen und reagieren, wenn der Vergleich <>0 ist.
Auf diese Weise kannst Du natürlich nicht zählen, ob mehrere Bits in dem Byte/Wort gesetzt waren. Jedenfalls dürfte das um einiges schneller ablaufen.