|
Command
QisLib_SetCreateMemoryMaps
Function:
int QisLib_SetCreateMemoryMaps(int OnOff);
Inputs:
On/Off: _QIS_ON (On) or _QIS_OFF (Off)
Return:
0 (always)
failure: one of the following values :
Errors:
-1: File open in progress, operation not permitted.
Description:
- Memory maps are disk images of the QisLib internal database in the memory when a
GDSII file is opened. Normally, QisLib creates this database directly in the memory
while opening a GDSII file. However in cases when the user needs to re-open the
same GDSII file more than once without much change in the global QisLib settings,
it may be beneficial to save the database directly to disk so that it can be read
indirectly, next time the GDSII file is opened. Use of memory maps for opening a
GDSII file results in much faster file open especially for bigger files.
- This function informs QisLib to create scan and load memory map files when a GDSII
file is opened using QisLib_OpenGDSII.
- This feature works only for GDSII files and is off by default.
- Memory maps are created at the end of the normal opening phase of QisLib_OpenGDSII.
- Memory maps will be created during QisLib_OpenGDSII if this setting is turned on.
However, if the corresponding memory maps for the GDSII file exist and they were
opened (instead of the original GDSII file, see QisLib_SetUseMemoryMaps), then the
memory maps won't be recreated.
- When memory map files are opened directly using QisLib_OpenMemoryMaps, new memory
maps are not created even if QisLib_SetCreateMemoryMaps is set to on.
- If QisLib_SetLoadMemory is on and QisLib_SetCreateMemoryMaps is on, the GDSII data
entities are also saved in the load memory map file. The naming convention uses the
word 'load' and 'dbload' to differentiate between load memory map files created
with QisLib_SetLoadMemory off and on respectively.
- The loading phase of QisLib_OpenGDSII with QisLib_SetCreateMemoryMaps set on will be
slower than normal loading.
- The memory map file naming convention is as follows: For a GDSII file called
demo1.gds,
Windows/Linux/X86 Solaris SUN Solaris
32 bit demo1.gds.scan.l32 demo1.gds.scan.b32
SetLoadMemory off demo1.gds.load.l32 demo1.gds.load.b32
SetLoadMemory on demo1.gds.dbload.l32 demo1.gds.dbload.b32
64 bit demo1.gds.scan.l64 demo1.gds.scan.b64
SetLoadMemory off demo1.gds.load.l64 demo1.gds.load.b64
SetLoadMemory on demo1.gds.dbload.l64 demo1.gds.dbload.b64
- The correct sequence of calls for creating memory maps is:
For SetLoadMemory off setting:
QisLib_SetMemoryMapsDir("..."); // Optional
QisLib_SetCreateMemoryMaps(_QIS_ON);
QisLib_OpenGDSII("...");
For SetLoadMemory on setting:
QisLib_SetMemoryMapsDir("..."); // Optional
QisLib_SetLoadMemory(_QIS_ON);
QisLib_SetCreateMemoryMaps(_QIS_ON);
QisLib_OpenGDSII("...");
References:QisLib_SetUseMemoryMaps QisLib_SetMemoryMapsDir QisLib_OpenMemoryMaps QisLib_OpenGDSII Functions that affect the creation of memory maps: QisLib_SetLoadMemory QisLib_SetLoadEmptyRef QisLib_SetInputLayerMap |