Memory Usage and Settings

    Even though Instant Jchem is able to work with minimal amount of memory, please take the system requirements into account.

    Increasing Memory Size

    We have tried to ensure that Instant JChem can handle large data sets with relatively modest memory usage. Instant JChem employs a sophisticated caching system to let it handle large data sets without all the data needing to be in memory at any one time.

    In general this works very well, and you can for instance open the NCI open database compounds , containing ~250,000 structures, and view and search this data quite effectively (try doing this in an Excel based package!).

    However everything has its limits, and if you need to open very large data sets, or have lots of them open at the same time it is possible that Instant JChem may need more memory to operate effectively. Information on how to do this can be found in the Changing Memory Settings help topic.

    As an approximate guide work on the basis that IJC needs 64MB (Performance problems are expected, when the minimal memory is used) for its own use and each million structures take up approximately another 100MB. For searching in Markush structures more memory will be needed. For instance if you are using the Thomson-Reuters parent data demo-set containing approximately 600 Markush structures you may need around 700MB maximum of memory.

    Monitoring Memory Usage

    There is a memory toolbar that lets you monitor memory utilization. If this is not displayed, right click in an empty area of the toolbar and check the Memory checkbox.


    This toolbar lets you view the current memory usage, and if you click on it, it forces any unused memory to be freed up ('garbage collection'). Occasionally you may find that doing this may improve sluggish performance.

    Using the memory monitor is a good way of detemining the maximum amount of memory to allocate to IJC:

    1. Allocate a memory size a bit bigger than you expect is needed

    2. Restart IJC

    3. Display the IJC log file (View -> Instant JChem Log File)

    4. Open a view for every Data Tree that you have defined.

    5. Run a substructure search for each Data Tree that contains a structure table

    6. Look for warnings in the log file that tell you that tables needed to be removed from the structure cache. If you see these then you should probably increase the amount of memory allocated. If you successfully run structure searches against all the structure tables without seeing these warnings then you probably have sufficient memory.

    7. Once you have run searches for all the tables examine the memory monitor and look at your current memory utilization. If it is much less than the total amount of memory allocated then you can probably reduce the total amount. Try to leave yourself with at least 64MB free memory.