Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

Win95 FAQ Part 14 of 14: Misc
Section - 14.7. Why do 32-bit programs seem slower than the original 16-bit ones?

( Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Part8 - Part9 - Part10 - Part11 - Part12 - Part13 - Part14 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Business Photos and Profiles ]

Top Document: Win95 FAQ Part 14 of 14: Misc
Previous Document: 14.6. Can I run Win95 on my '386-SX with 4 MB of RAM? (a bit of a joke, but it does run)
Next Document: 14.8. Why didn't Novell/WordPerfect/Corel (TM) release a 32-bit version of PerfectOffice (TM) yet?
See reader questions & answers on this topic! - Help others by sharing your knowledge
   Microsoft's excuse to this is app writers are just learning how to
   write Win32 programs. This is probably right; you can't just take a C
   program optimized for Win 3.1 and throw a compiler switch. You have to
   make Win32 calls, switch your DOS calls to Win32 disk calls, use built
   in libraries and requesters instead of the home-made ones, and trim
   off the extra memory you'd allocate just to over-compensate. There's a
   lot of bad programming practice out there. I personally believe that
   all the ex-Amiga coders out there will take to Win95 the easiest,
   because we already know how to write tight code.
   Another good excuse is that programmers don't trust the OS and try to
   access hardware directly. Wrong. This not only forces a lot of excess
   bulk in the code, it has to fight with the OS to get to the hardware.
   Some really untrusting software houses (like Novell) will even include
   their own whole subsystems into the OS, rather than use what's already
   there. Bad move. Result: 4 MB network clients (compressed) compared to
   oh, 200 KB.
   Yet another excuse? Intel. The Pentium and '486 class processors were
   really optimized for 16-bit code. As much as Intel and Microsoft
   wanted to push programmers into using the extended instruction set of
   32-bit processors, the programmers had a 16-bit OS to contend with,
   except for a privileged few coding for NetWare, OS/2, or NT. (OK maybe
   some UNIX people too) Hence the Pentium Pro's optimization towards
   32-bit code. Of course all the cheap clone processors had to be fast
   running 16-bit code too.
   I also read something about Windows NT, where you can do something
   called "Working set tuning". This lets you re-organize the executable
   so the most frequently used code sits near the beginning of the
   executable, and the least used stuff goes near the end. This way, you
   don't need to have as much memory to run your app. Unfortunately,
   Win32s (and probably Win95) don't take advantage of this and they'll
   load all of the app in memory anyway, wasting it. The same 32-bit app
   running under NT will probably run faster than it would under Win95
   because of this. Case in point: MS Word 7.0. This app runs much faster
   in NT 4.0 than in Win95.
   The new companies coming out tend to write cleaner and faster code
   that use the OS. Check out the shareware on or
   any major FTP site. The old established firms will take a long time to
   switch over. Even in FEB 97 they haven't quite got it right yet.

User Contributions:

Comment about this article, ask questions, or add new information about this topic: