Reducing memory consumption

Having trouble installing Oxygen? Got a bug to report? Post it all here.
csalsa
Posts: 97
Joined: Tue Apr 22, 2008 9:31 am

Reducing memory consumption

Post by csalsa »

Hi

I regularly work on large sets of XML files and am constantly having to open/close files to work within the limits of my PC memory. Are there ways that I can reduce the memory consumed by OxygenXML?

Are there features that I can turn off? Are there ways of unloading memory, say, when switching between views?

I am running OxygenXML 10 on Windows XP (SP3 + updates), 2GBytes of memory.
sorin_ristache
Posts: 4141
Joined: Fri Mar 28, 2003 2:12 pm

Re: Reducing memory consumption

Post by sorin_ristache »

Hello,

A way to reduce the memory is closing the files that you do not use currently. Any opened file consumes a part of the memory allocated for the Oxygen application.

Also the memory is reduced by turning off the option Clear undo buffer before Format and Indent available in Preferences -> Editor -> Format (useful if you run the action Format and Indent (pretty-print) on large files) and the option Clear undo buffer on save available in Preferences -> Editor -> Open/Save.

How many files are opened in Oxygen? What is the total size of these files and what is the memory consumed by Oxygen?


Regards,
Sorin
csalsa
Posts: 97
Joined: Tue Apr 22, 2008 9:31 am

Re: Reducing memory consumption

Post by csalsa »

I am using <oXygen/> XML Editor 10.1, build 2009022712

On starting OxygenXML, I load our XML Schema (32,000 lines, 1.5 MBytes), and it consumes 249 MBytes. On a set of eight XML sample files, 613 MBytes of memory is consumed. On a more typical set of sixteen XML sample files, 1200 MBytes of memory is consumed.

I had to use the setting of –Xmx1200m in the file ‘oxygen.vmoptions’.

The files are formatted with one element per line (including element end tag and any attributes). The XML sample files are typically 40 to 60 lines, 1k to 2k.

The option 'Clear undo buffer before Format and Indent' was already on but the option 'Clear undo buffer on save' was not. It is now (after I measured the memory).


PS I noted that loading and validating only uses one core of my dual core system.
sorin_ristache
Posts: 4141
Joined: Fri Mar 28, 2003 2:12 pm

Re: Reducing memory consumption

Post by sorin_ristache »

csalsa wrote:I am using <oXygen/> XML Editor 10.1, build 2009022712

On starting OxygenXML, I load our XML Schema (32,000 lines, 1.5 MBytes), and it consumes 249 MBytes.
Do you see 249 MB in the dialog opened from menu Help -> About or in a tool that shows the total memory needed by the Java virtual machine process? For example on Windows the total memory needed by the JVM can be with 130 MB larger than the memory used by the objects of the Java application that runs in the JVM. For example for an XML Schema of 1.3 MB for which the schema diagram is displayed only 76 MB are used by the objects of the Java application and a total of 244 MB is used by the JVM. The -Xmx parameter sets the value that you see in the Help -> About dialog.
csalsa wrote:On a set of eight XML sample files, 613 MBytes of memory is consumed. On a more typical set of sixteen XML sample files, 1200 MBytes of memory is consumed.

...

The XML sample files are typically 40 to 60 lines, 1k to 2k.
How can we reproduce that? Are other large files also opened when you have the the small sample files opened? Can you send us a set of sample XML files for reproducing the problem? I opened 20 files of 1.5 KB and only 46 MB are used. I see that in the Help -> About dialog. I validate every file and after 20 validation actions I see that 47 MB are used.
csalsa wrote:I noted that loading and validating only uses one core of my dual core system.
The open and validate actions are not multi threaded. It is only one thread so only one CPU core is used. Is the validation slow on your files? If yes what is the file size and where is the schema located (on a remote server, on the local computer, etc)?


Regards,
Sorin
csalsa
Posts: 97
Joined: Tue Apr 22, 2008 9:31 am

Re: Reducing memory consumption

Post by csalsa »

The memory that I was quoting was the total memory used by the process
The tool that I use was Process Explorer from System Internals. System Internals have also just been released a new tool VMMap which shows a more detailed breakdown of the memory.

I would think the reason for memory consumption is the huge XML schema that is loaded. Unfortunately, it is based on a commercial finance model and I cannot disclose it or samples based upon it and this means you will not be able to reproduce the issues that I see.

Time permitting, I was planning to try load the samples and then try to trim parts of the XML schema that are not used. This should reduce the XML schema size significantly. The XML schema is generated across the complete model and there is no way to export parts of it.

As I cannot provide samples of the XML Schema and sample files, I was not expecting detailed help. Though lots of memory is consumed, OxygenXML does function well for us.
csalsa
Posts: 97
Joined: Tue Apr 22, 2008 9:31 am

Re: Reducing memory consumption

Post by csalsa »

I did look around for some other large, public XML schemas, such as HL7. If I have time, I will see if this schema causes OxygenXML to behave similar to the XML schema that we use.
Post Reply