
Thanks Steve, that was the problem. Oddly, now that I've resolved these file I/O issues, MSVC works best with similar constants to gcc, and it is slightly faster. Now, on MSVC I see a 27% speedup for integer_sort, 6X speedup for float_sort, and 136% speedup for string_sort (relative to std::sort). The new version is in the boost vault, named algorithm_sorting.zip. As this zip file was built on my new (purchased for this project) Windows system, it no longer has those annoying MacOS tag files in it. I verified it works in gcc with my old mac system. To make the tuning script cross-platform, I send undesired output to a .tunelog file (/dev/null doesn't work on windows), I have duplicate rm/del commands, and I modify the user's path to have "." in it for Windows (then remove it when the script finishes). For some reason I haven't figured out, it leaves a time.txt file in the directory instead of deleting it on Windows, but I don't think that's a big deal. I'm currently rerunning performance tests (trying to see if I can eliminate the #ifdef MSVC), and once that is done and I've made some graphs for Windows performance, I should be ready for a formal submission. Steven Ross On Sat, Apr 18, 2009 at 1:24 PM, Steven Watanabe <watanabesj@gmail.com>wrote:
AMDG
Steven Ross wrote:
What is the best platform-independent file I/O approach to use for writing and reading bytes? ofstream writes 4031 bytes when I tell it to write 4000 on Windows, so that doesn't seem appropriate.
You probably need to open the file in binary mode.
In Christ, Steven Watanabe
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost