Performance Profile

In order analyze your log files as quickly as possible, LogViewPlus loads a parsed version of the log file into memory.  This makes LogViewPlus a memory intensive application. 

To understand why this is the case, consider a 1 GB English language log file stored as UTF-8.  The information is therefore stored as 1 byte per character.  Windows is a UTF-16 operating system which will use 2 bytes per character.  So, to load these characters into memory as a string, the application will need a minimum of 2 GB of memory.  This can be seen by loading a 1 GB log file into Notepad.

LogViewPlus uses two copies of every log entry.  The first version is the original log entry without modification.  The second version is the parsed log entry.  Two versions help enable advanced features while also maintaining the same behavior and search performance as tools like Notepad.  Keeping a copy of the original log entry also ensures that log entry display and export match the original log file exactly.

However, it also means that LogViewPlus will need twice the memory, so our 1 GB log file will now need 4 GB of memory.  In LogViewPlus 3.0 and greater, the ratio is more like 1:5 due to the number of parsed objects being managed by LogViewPlus (in .Net a string object is a minimum of 32 bytes on a x64 system).  This compares with Notepad's ratio of 1:2 to give a 150% increase in predicted memory usage.

Occasionally, you may notice that Windows reports LogViewPlus memory usage outside of these bounds.  This is due to how Windows and .Net manage memory.  If you open and close a file in LogViewPlus, memory will have been released but Windows many not bother to actually collect this memory.  Memory collection causes a performance hit and if your system has plenty of memory available, it may not be triggered.

We have considered a number of approaches to decrease the required memory footprint.  However, all approaches require some form of trade-off between memory and CPU.  These approaches also tend to generate a lot of temporary memory during some operations.  This memory will be reclaimed, but the thrashing combined with increased CPU usage can lead to poor performance.

If you are having trouble opening a log file due to memory constraints, one solution would be to only open part of the log file.  Alternatively, you could try shutting down some applications or upgrading your computer. 

In summary, LogViewPlus will need about 150% more memory than Notepad to open a given log file.  We believe the increased memory footprint is justified by the depth of analysis provided by the application.  Log files contain a lot of data which is difficult to analyze just by searching.  The larger the log file, the more benefit can be gained by using LogViewPlus.


< >