Ok, not the most glamorous topic to kick off the new year but you get what you pay for. This is the first JE I have posted in several months, not because of ill will or dissatisfaction here, but simply because I do not have the time I once had to post.
Anyway... I decided to conduct a small experiment with one of my C++ compilers. I have a 32-bit application that has a benchmark test embedded in it and I have been recompiling the app over and over to isolate the optimal set of parameters for the compiler and linker to get the best performance. So far I have found that compiling for the i686 chipset with full compiler-provided optimization and stdcall linkage yields the very best performance. I am not sure why stdcall is best, to be honest, but that stems from my ignorance on the different linkage strategies. Also, the performance gain with stdcall is not large but it's noticeable. Once I got the application tuned as tightly as I could with the compile, I got curious - how would a DOS32 app compare against a Windows console application?
In a nutshell, the DOS32 application performed dreadfully. Where the Windows console application benchmarked around 1550 ms on average, the DOS32 application benchmarked just over 2000 ms. I assume this is a penalty relating to the translation layer of the DOS extender.