Special “C” Version

There are two versions of A-Shell available for Windows: the standard version and the “C” version. For most situations, the standard (non-C version) of A-Shell for Windows is preferred, but there are special circumstances in which the C version will offer better performance. This page explains why you might want to use the C version. In brief: use the standard version unless you have good reason to use the C version.

For most users running recent versions of Windows, the standard (i.e., non-C) version of A-Shell for Windows is the best choice. However, it is possible that you will get better performance with the “C” version in some peer-to-peer Windows network environments if (a) your application does not use LOKSER and (b) you do not have data files larger than 2GB. If you have that environment, and if you have performance concerns, then the “C” version may be right for you. 

For interested programmers, here are some additional details, depth and background:

The “C” version is built using the file I/O routines from the C portability library. Under the Windows implementation of the C portability library, the file I/O routines are essentially wrappers around the WIN32 File I/O routines. So in theory the two versions should give pretty much the same performance, except for the 2GB limitation imposed by the wrappers.

 

But for reasons which have never been adequately explained,  the “C” version seems to run faster in a Windows peer-to-peer environment where files are shared across the network and in particular where LOKSER-style locking is not used. Some sites claim that the performance difference is quite significant.  Others report no benefit, or even that the “C” version is slower.  The differences in performance are presumably related to some differences in the file access options used by the “C” wrappers, resulting in different network caching characteristics, which in turn interact with the characteristics of the application resulting in performance variations.  It’s all rather mysterious and difficult to pin down.  We recommend that you use the standard version, but if you aren’t happy with the performance and find that the “C” version works better for your application in your environment, then feel free to use it.

 

Back to Top