<div><font face="'courier new', monospace">See these all vs myAll tests:</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace"><div>%~> python all_test</div>
<div>0.5427970886230469</div><div>1.1579840183258057 </div><div><br></div><div>3.3052260875701904</div><div>3.4992029666900635 </div><div><br></div><div>3.303942918777466</div><div>1.7343430519104004 </div><div><br></div>
<div>3.18320894241333</div><div>1.6191949844360352</div><div><br></div><div>In the first pair and the second pair, the pairs receive the same input. The builtin all outperforms the user-defined.</div><div>In the second pair, the builtin receives a generator whereas the function just runs. A generator has to be called once every iteration, and this significantly slows it.</div>
<div><br></div><div>The main use of "all" is ease, though, as mentioned before.</div><div>The second is speed when testing lists/generators that don't need to be wrapped.</div><div><br></div><div>Note:</div>
<div><div>%~> pypy all_test</div><div>0.0657250881195</div><div>0.0579369068146 </div><div><br></div><div>0.751952171326</div><div>0.657609939575 </div><div><br></div><div>0.748466968536</div><div>0.0586581230164 </div>
<div><br></div><div>0.801791906357</div><div>0.0550608634949</div></div><div><br></div><div>If speed is your concern, there are simple solutions.</div></font></div>