Microsoft KB Archive/49732

From BetaArchive Wiki

INF: Speed Differences Between WIN /3, WIN /2, and WIN /R ID Number: Q49732



The following information describes why WIN /3 and WIN /R run slower than WIN /2.

WIN /3 is slower than WIN /2 because it runs in 80386 protected mode and virtualizes all devices and I/O operations. WIN /3 also provides demand-paged virtual memory using the hard disk to swap paged-out RAM; this feature involves extra validity checking and disk swapping when page faults occur, which takes some extra time.

WIN /R is slower because it has limited memory space (the 640K maximum provided by MS-DOS), and therefore, must perform a lot of moving and discarding of code and data segments when the memory space is “overcommitted” by the system and running applications.

WIN /2 is fastest because although it runs in the protected mode of the 80286 and is somewhat slowed down by that, it has MUCH more memory available for applications to run in; therefore, less moving and discarding of code and data segments is necessary. The speed gains of WIN /2 compared to WIN /R depend on how much extended memory is on the machine and how much is needed by the system and all running applications. For example, where WIN /R has to discard and move some segments to make room for a new application to run, WIN /2 simply allocates more of the global heap, which consists of all available extended memory.

Some of these factors apply to Windows versions 2.x (2.03, 2.1, 2.11) as well as Windows version 3.0. For example, Windows/386 versions 2.x run in protected mode and virtualize devices and I/O, which slows things down. However, Windows/286 versions 2.x run in real mode and gain speed from that. On the other hand, Windows/386 versions 2.x provide Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS) version 4.0 to applications, which allows more applications to fit in memory at the same time. However, Windows/286 does not provide its own EMS memory for applications, instead relying on an already-installed EMS board or “limulator” to provide it. If the system does not have any EMS memory, Windows/286 is forced to discard and move memory more often.