Memory consumption

Jabref requests at start 0.1TB virtual memory and uses 600MB RAM. As a comparison reference, my whole system has a 200GB SSD for two operational systems with approx 20GB free space at the moment. Even though VIRT seemingly does not equal RAM + swap space, I find this value alarming. The 600MB RAM usages is also kind of borderline to me, but it is not an issue yet.
I’ve just started to use JabRef and I’ve got 620 entries in my database, which could increase by a magnitude in a short time. I am also afraid how much the RAM usage will increase once my database is extended. I feel that jabref is slow, the web searches often just hang, and my computer is also slowed down when JabRef is opened.

All in all, first I would like to get some feedback from others, whether they also experience such high memory usage.
Second I would like to know whether it could be a version specific problem, which will be fixed in the next release/build,
Third, whether there are ways to improve its memory consumption and performance by some user settings.

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
27933 zoltan    20   0  0,101t 594,6m 152,6m S   5,3  7,5   0:59.35 JabRef

Jabref version info:

JabRef 5.0--2020-03-06--2e6f433
Linux 4.15.0-96-generic amd64 
Java 13.0.2

Hi,

thanks for the feedback. We recently improved the performance and memory consumption in the latest development version:
https://builds.jabref.org/master/
Pleas remember to make a backup before trying out the new version

Regards

Hi Christoph,
Unfortunately I see no change with JabRef 5.1--2020-04-23--bbea7df :frowning:

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
24908 zoltan    20   0  0,101t 742,4m 157,8m S   4,6  9,4   0:57.02 JabRef

The core of my bibtex library was imported from Mendeley. I think I did not altered the default settings in JabRef. Is ther any way I could debug what does it cause the the high memory consumption?

A short update with new jabref:

JabRef 5.2--2020-12-24--6a2a512
Linux 5.4.0-62-generic amd64 
Java 15.0.1

It is stated in /proc/<PID of jabref>/status, that VmSize: 6189944 kB right after starting it up. It opens my default and only database. It is just by start requiring 6GB memory.

The corresponding line in top:

1435868 zoltan    20   0    5,9g   0,6g   0,1g S   0,8   8,2   1:14.89 JabRef

In my case (also running Linux), I had to deactivate “auto completion” in settings. Afterwards only about 300 MB Memory with 5 bib files with about 3000 entries open.

Thanks for the hint! Though I am not sure whether I’ve found it in the settings. It is not in the menu-like preferences, but there is something in a variable-value list attached as a screenshot. Is it where you have disabled the auto-completion? Auto-completion seems to be turned off there…

Sorry for the unclear wording, I have no idea how these interfaces are called.

Ahh, OK :slight_smile: Thanks! It was already turned off in my preferences. Probably that’s why I’ve overlooked this. I was looking for something I can turn off.
The reason behind the sluggishness and the memory consumption seems to be something else in my case.

Bump.

I am hoping to get some advice how to improve the memory consumption. Right now it requires 300GB virtual memory and it reserves itself 1.8GB after a fresh start. So the situation has even worsened. I have no idea how it is possible to represent the whole database which is a less than 2MB file even 1.8GB. If there is any extra feature which is not necessarily required for operation, I would like to know how to disable it.

Same here. Jabref (version 5.1–2020-08-30, Java 14.0.2, Ubuntu 20.04) requires ~1GB of memory, for a database of ~2MB with ~1000 entries.

@frantik2477 Please try the latest master version.
Please remember to make a backup before trying out the new version

In contrast to 5.1 we fixed a lot of performance and we improved loading/opening of files.

When I have JabRef open in the background for multiple hours I see a java process with more than 1 GB memory usage. That number keeps increasing and the biggest I’ve seen was over 4 GB.
I have 36 entries, where most of them have a linked PDF file. In sum those PDF files are 150 MB.

This is my JabRef version:

JabRef 5.3--2021-07-05--bed9ac9 Linux 5.4.0-72-generic amd64 Java 16.0.1 JavaFX 16+8

@Kaniee You might want to try the latest development version index - powered by h5ai v0.29.0 (https://larsjung.de/h5ai/)
There have been several improvements

I gave it a try. From the first view impressions I would say it’s a bit worse (I’m sorry).

Right after the start memory consumption increased from 360 MB to 480 MB.
After clicking on the first entry the consumption goes straight to 1.0 / 1.1 GB in both versions.

JabRef 5.4–2021-10-06–bbc67ed
Windows 10 10.0 amd64
Java 16.0.2
JavaFX 17.0.0.1+1

With empty library:

  • after start it uses roughly 200 - 240 megabyte RAM

Creating one entry in the library and entering the entry editor leads to:

  • jump to roughly 570 - 620 megabyte RAM usage.

Deleting the entry or closing the library:

  • leads to jump towards 650 - 700 mbyte.

Restart of JabRef.
Opening my library with 79 entries:

  • 265 - 280 megabyte RAM. 310 when scrolling.

Clicking on one entry to open the entry editor:
600 - 620 megabyte RAM.

RAM increases the more entries i click on or select via my keyboard arrows. It starts increasing with15-20 mbyte steps, then becoming incrementally smaller (e.g. 5-10, 0-5) until hitting roughly 830 mbyte of RAM usage. Then it basically stopped deviating. I have not tested letting the machine run for
multiple hours. Might do at one point.

Measurements taken with the in Windows built in “Task-Manager”

Edit:

While doing the measurements, these were my settings:

  • I did not have any pdf files attached to any entry
  • timestamps and autocompletion were disabled

The development version contains a full text pdf search. JabRef creates an index in the background the first time you open the library. However, once it’s crated it should not be causing any huge problems