WSOPT

Purpose

Set workspace size options.   These are used to optimize the workspace available for data storage.

Syntax

WSOPT {VAREXP #perc}  VARMAX #vmx {HEAPMAX #MB} @

Arguments and Subcommands

VAREXP #perc

Specifies the percentage by which the number of variables in the input file is to be expanded when computing the maximum number of records that can be used.  The range is restricted to 0 to 200 with an  initial default value of 50% or the value stored in the epicure .ini file.  The last value used is saved in the ini file when epicure exits.

VARMAX #vmx

Specifies the number of variables for which space is to be allocated.  The range is restricted to 0 to 5000.   The default value is 0.   When the value is zero the number used is equal to the number of variables in 0where invars is the number of variables in the input file and #perc is the variable expansion percentage (50% by default) specified with the VAREXP subcommand.  When both #perc and #vmx are specified the workspace is allocated for the maximum of  and #vmx.

 

HEAPMAX #MB

Specifies the maximum data set heap size in megabytes.  This maximum amount of memory that an be used for storing data.   The actual maximum is machine-dependent and might depend on which other programs are running at the same time as Epicure.  Because the current version of Epicure is a 32-bit application There is unlikely to be much more than 1000MB (1 gigabyte).  The initial default is the maximum of 1000MB and the value stored in the epicure.ini file.  values are limited to the range 100 and 1500. The last value actually used is saved in the ini file when epicure exits.

Remarks

This command and the related functionality were introduced in version 2.00.03.  The new methods for determining the workspace size should allow one to use workspaces (records times number of variables) that are at least twice the maximum that was possible in earlier windows versions of Epicure.

When data are read from a text file and the RECORDS command is not used to specific the maximum number of records to use, the maximum number of records  is determined as maxrecs =  1000*#MB/8*invarcnt*(1+ #perc/100), invarcnt is the number of variables in the input file and #perc is the variable expansion percentage defined below.

If the RECORDS command has been used to specify the maximum number of records to be read, the maximum number of variables is determined as maxvars = 1000*#MB/8*maxrecords, where maxrecords is the value specified in the RECORDS command.

When data are read from a BSF file, the number of records is known and the maximum number of variables is determined as maxvars = 1000*#MB/8*nrecs, where nrecs is the number of records in the BSF file.

If it is not possible to allocate the requested workspace, the heap size is reduced by 100MB and the record/ variable limits are computed again and used to test for sufficient memory.

When ever this command is given a summary of the current initial trial values of the heap size and variable expansion factor are written to the log window and log file.