in reply to Re^2: Random Numbers under XP: Translating XS to Win32::API
in thread Random Numbers under XP: Translating XS to Win32::API
I noted your use of the 'V*' directive for the unpack call. Although with random data, distinguishing between big-endian and little-endian is superfluous.
True, but as the platform is little-endian, converting using V* rather than N* saves doing a lot of fiddly byte and bit-twiddling. This really shows up when you unpack a few thousand ulongs.
Below I timed unpacking the same 1000 values both ways:
P:\test>471107 Name "main::SystemFunction036" used only once: possible typo at P:\tes +t\471107.pl line 14. 1 trial of N* non-native BigEndian ( 1.848ms total), 1.848ms/trial 1 trial of V* native LittleEndian ( 310us total), 310us/trial
It essentially is the difference between doing nothing and doing something (fiddly).
|
|---|