If an XSUB were used to make the conversion ukeysort would be the fastest!
And to show it, I have just uploaded Sort::Key::IPv4 to CPAN ;-)
Now, adding this test to the benchmarks...
use Sort::Key::IPv4 qw(ipv4sort);
sub ipv4ks {
my @sorted = ipv4sort @address;
}
I get for 10_000 addresses:
Rate gloryhackish ukeysort keysort ipv4sor
+t
gloryhackish 6.14/s -- -31% -54% -79
+%
ukeysort 8.91/s 45% -- -34% -70
+%
keysort 13.5/s 119% 51% -- -54
+%
ipv4sort 29.4/s 378% 229% 118% -
+-
For 100_000:
s/iter gloryhackish ukeysort keysort ipv4sor
+t
gloryhackish 1.80 -- -31% -33% -78
+%
ukeysort 1.25 44% -- -3% -68
+%
keysort 1.21 49% 3% -- -67
+%
ipv4sort 0.400 350% 212% 202% -
+-
And for 1_000_000:
s/iter gloryhackish keysort ukeysort ipv4sor
+t
gloryhackish 24.3 -- -29% -46% -79
+%
keysort 17.2 41% -- -24% -71
+%
ukeysort 13.2 85% 31% -- -62
+%
ipv4sort 4.99 388% 245% 164% -
+-
|