Dynamic Libraries and Timing
I was able to build Mac OS X dynamic libraries last night. I built my Tools and Compression code and was able to run them successfully. I also built them as 64-bit code and it all worked swimmingly. I do need to tweak my hand-built porting tools, but now I have a better knowledge how things are done on Mac OS X.
I was also able to build and test the SFMT code that I’d been working on earlier. The test programs supplied with the code were able to give me more accurate results than what I could get on Windows.
For example, the SFMT test code could be built “standard” or could take advantage of the SSE2 vector instructions of the Intel chips. When I built two versions under Windows, the time to generate 100,000,000 random integers was around 230ms no matter what I did. Knowing that the code was going through two different code paths, I began to suspect that the time measurements weren’t accurate.
When I built the two versions under Mac OS X, the standard build took 837ms. The SSE2 build took 78ms. Seventy eight! That’s f’ing fast, and just the speed I want to have on the back end of a web services engine.
The next items on my Crucible list are to tweak my build scripts to better support cross-platform development, build my sfmt library and run comparisions between the pure Ruby SFMT and get back to the Ruby/C sfmt binding library.