June 3, 1996

PicLan 32-bit Performance Issues

In developing the PicLan 1.9 release for Windows 95 and Windows NT, several performance characteristics have become apparent. First some background.

PicLan 32-bit Driver Architechure

The PicLan 32-bit drivers are implemented as a native 32-bit Windows application that communicates with the Windows network interface using IPX WinSock calls. This 32-bit driver application is called PLAN32S.EXE (PicLAN 32-bit Server). This application itself is a multi-threaded 32-bit Windows application that does not create any windows (or any user interface of any kind). It communicates with the outside world through an API DLL called PLAN32.DLL. This DLL uses a Win32 mapped file and a number of synchronization elements to communicate with the outside world.

The PLAN32.DLL provide excellent communications performance for native 32-bit Windows application

Supporting 16-bit Windows Applications

PicLan supports 16-bit Windows applications by "thunking" from 16-bit to 32-bit code. A thunk refers to a segment of code that transitions from the 16-bit segmented environment of old-style Windows 3.x to the newer flat-model 32-bit environment of Windows 95 and Windows NT. This thunking layer is quite versatile. It is also quite slow. Calls that under 16-bit Windows were several hundred instructions long are now several thousand instructions long. Because of the continuous communications nature of PicLan applications like terminal emulation, the number of calls performed is also quite large. You then mix in the scheduling model for 16-bit applications, and the mix gets very messy.

What This All Means

In testing a Modular Software, the performance of PicLan client software was evaluated quite unscientifically. In general, user feel and responsiveness to the host system were considered the most important factors. Also, the system used to test PicLan with 32-bit drivers is about as slow as you would want running Windows NT (or Windows 95 for that matter). The system is a 486-66 with no second-level cache and 16 Megabytes of memory. Persumably faster systems will do better.

Windows NT Performance

PicLan 16-bit application performance under Windows NT is actually quite good (remember that this is NT). The NT environment seems to give the 16-bit Windows applications a fair amount of system time and the responsiveness of the applications remains quite reasonable.

Windows 95 Performance

PicLan 16-bit applications do not fair so well under Windows 95. Windows 95 has a tendency to starve 16-bit applications whenever 32-bit applications have any work to do. On slower systems, the work to do can be the 32-bit helper application PLAN32S.EXE. This make the system appear to not accept user input in a terminal emulator until you stop typing.

32-bit Applications

PicLan version includes a 32-bit version of PLTW (called PLTW32) for just this purpose. Because PLTW32 is a real Win32 application, the thunking layers are no longer necessary. Originally a 32-bit version of PL-DSGW was scheduled for the PicLan version 2 release, but testing indicates that DSG performance is not nearly as visually demanding as terminal emulation echo delay.