To add a bit variety, you could try: l = RandomChoice[Range[-100, 1], 5000000]; Tr[Clip[l, {0, Infinity}]] > 0 A comprehensive timing comparison would be interesting...