<div dir="ltr"><div>How come unpacking integers as big endian is faster than little endian, when I'm running on a little endian platform (intel osx)? <br></div><div>I know big endian is erlang default, but if you're turning binaries into integers, you must turn them into little endian anyway, so unpacking should basically be memmcpy.<br></div><div><br></div>The test:<br><div><br>% Takes:  ~1.3s<br>-define(ENDIAN,unsigned-big).<br><br>% Takes: ~1.8s<br>% -define(ENDIAN,unsigned-little).<br><br>loop() -><br>    L = [<<(random:uniform(1000000000)):32/?ENDIAN,1:32>> || _ <- lists:seq(1,1000)],<br>    S = os:timestamp(),<br>    loop1(1000,L),<br>    timer:now_diff(os:timestamp(),S).<br><br>loop1(0,_) -><br>    ok;<br>loop1(N,L) -><br>    lists:sort(fun(<<A:32/?ENDIAN,_/binary>>,<<B:32/?ENDIAN,_/binary>>) -> A =< B end, L),<br>    loop1(N-1,L).<br><br></div></div>