Home >
Capacity and other limitations

System resource limitations

On Unix/linux, the default max amount of CPU time allowed is 30 seconds which is enforced using setrlimit(), and a core dump occurs when the limit is exceeded. This limit may be modified by using The -cpulimit command line option described below, or in proc settings, or in pl.h (CPULIMIT)

Date arithmetic

The date arithmetic package can handle dates as far back as 1754. Date scaling using omitweekends mode is not supported (and gives incorrect results) for dates before Jan 1, 1970.

Capacity limits

Ploticus has these capacity limitations. Many of them are actually dynamic and can be overridden using command line arguments (etc). Unless otherwise noted these are #defined in pl.h or tdhkit.h (the relevant #define is shown in parentheses) and can be safely raised if necessary (then do: make clean; make).


    Default max number of data rows: 10,000 rows (MAXDROWS). Command line option -maxrows is described below.

    Default max total number of individual data fields: 200,000 fields (MAXD). This is the number of data fields per row, times number of rows. It is used to allocate storage for pointers, one per data item. Command line option -maxfields is described below.

    Default maximum number of elements in the data vector: 100,000. The "data vector" is used by proc processdata median computation (1 element per data point); proc lineplot, scatterplot, and curvefit (2 elements per data point); and proc rangesweep (3 elements per data point). Command line option -maxvector is described below.

    Example: suppose you have a data set with 58,000+ rows, and each row has 10 fields. You are doing scatterplots, so the plotting vector requires 2 ⋅ 58,000 cells. You would set capacities like this:
    pl ... -maxrows 60000 -maxfields 600000 -maxvector 120000

    Max length of data field: 250 chars (DATAMAXLEN)

    Max length of input data record: 2998 chars (MAXRECORDLEN)


    Default maximum total number of lines in currently active procs: 5000 lines (MAXPROCLINES). "Currently active procs" are the current proc, any #saved procs, and any proc getdata having an embedded data: statement. The maximum number of "currently active procs" is 40 (MAXOBJ) Command line option -maxproclines is described below.

    Max length of a line in a ploticus script: 3000 chars before & after variable evaluation (SCRIPTLINELEN)

    Max number of variables: 200 (MAXVAR)

    Max length of variable contents: 250 chars (VARMAXLEN)

    Max length of field names, variable names, category names, proc & attribute names: 48 chars (NAMEMAXLEN)


    Max length of a file pathname is generally 250 characters.

    Max number of points from which to compute a moving average or regression curve in proc curvefit is 1000 points, a dynamic limit that can be raised by specifying proc curvefit's maxinpoints attribute, or by raising MAXPTS in proc_curvefit.c

    Max number of points from which to compute a bspline curve is 100 points (see proc_curvefit.c).

    Max number of pie graph slices: 80

    proc tabulate limits: 200 rows, 200 columns, 200 ranges, comparison significance is 38 characters. (see proc_tabulate.c)

    Max length of a color specification: 38 chars.

    Under X11, SWF, and PNG/GIF/JPEG there's a limit of 500 points for a polygon (filled lineplots and rangesweeps are made up of many 4-sided polygons, so this limit doesn't apply to these), and with SWF there's a limit of 500 points for any one continuous line. Command line option -maxdrawpoints is described below.

    In proc lineplot, there's a maximum of 200 data points that can use the alternative data point symbol.

Capacity-raising pl(1) command line options

These options allow capacities to be raised for accomodation of very large data sets, or lowered to minimize memory usage. The defaults in this section are defined in pl.h.

-maxrows     nrows

    Set the capacity for data rows to nrows. Default nrows is 10,000. Ploticus will allocate one pointer for each row.

-maxfields     nfields

    Set the capacity for data fields to nfields. Default nfields is 200,000. Ploticus will allocate one pointer for each field.

-maxproclines     nlines

    Set the capacity for script lines for active procs to nlines. Default nlines is 5000. Active procs are the current proc, all #saved procs, and all proc getdata procs that contain embedded data. Ploticus will allocate one pointer for each line in each active proc.

-maxvector     ncells

    Set the capacity for the data plotting vector to ncells. Default ncells is 100,000. The data plotting vector is an array which holds plottable values for situations where the values must be sorted or pre-screened for bad values. Ploticus will allocate one double value for each cell.

-maxdrawpoints     n

    Use this if you need to render a polygon having more than 500 points in PNG/GIF/JPEG, X11, or SWF, or any continuous line having more than 500 points in SWF.

-cpulimit     s

    Set unix resource limit on cpu time to s seconds. Default is 30 seconds. New in 2.40


Ploticus 2.42 ... May 2013 Terms of use /