Memory diagnosis

Diagnosing Omniscope RAM Memory Use

Use internal tools to investigate memory issues 

Omniscope now includes tools to help us help you to diagnose specific memory problems, whether suspected leaks or out-of-memory errors. A memory leak is when Omniscope's memory footprint increases over time during the same session for no apparent reason, resulting in eventual slow-down (typically over a significant period of time). An 'out-of-memory' error occurs when an operation is attempted for which there is not enough physical RAM memory in your PC allocated to your session of Omniscope.

To use these tools, you will need Java 1.5.0 b7+ or Java 1.6+. Check your active version of Java in Help > About. Use Java 6 if possible, as the memory tool support is much better.

Diagnosing memory leaks

If Omniscope appears to slow down over time, when the data and view complexity is relatively constant, particularly after a long period of use, this is likely to be a memory leak. Please see Memory leak analysis.

Diagnosing out of memory errors

There are some datasets that Omniscope can't handle if there is not enough memory available. However, you may discover a fault where Omniscope attempts to request more memory than it should. If this occurs, you can configure automatic generation of memory dump files, which you can send to Visokio for analysis.

The Memory Diagnosis tool

Open the Memory Diagnosis tool by pressing Ctrl+Shift+Alt+M or choosing Settings > Advanced > Diagnose memory use. You may need to enable Settings > Advanced > Show diagnosis tools and restart Omniscope first.

If you have Java 5 (1.5) or earlier you will see a Force out-of-memory button which is used to trigger a memory dump. Naturally occuring out-of-memory errors will also trigger this. You will need to have edited your file to enable "heap dump on out of memory" prior to starting Omniscope. When you are confident a memory leak is apparent, make sure you have saved your work, and click this button. This will cause a memory dump file (*.hprof) to be created in the program folder.

If you have Java 6 or later, you will see a tickbox Dump memory on out-of-memory. Tick this box to enable memory dumping. You will also see the button Dump memory. Use this button to create an ad-hoc memory dump file - you will be prompted to choose for a save location, then Omniscope will freeze for a few seconds as it generates the dump file. Note that memory dumps can take up a lot of space on disk, so generate memory dumps sparingly and clean up old files.

Sending us memory dumps

Memory dumps can be large, so please compress using ZIP or another common format. Please be sure to give us the full product version (e.g. "2.5 b231") if you send us a dump file.