You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your suggestion for improvement related to a problem? Please describe.
As a User I have a huge list of custom abbreviations. Adding them will freeze JabRef for a couple of minutes and will produce other issues. https://discourse.jabref.org/t/journal-abbreviations-with-dot/3400/4
Describe the solution you'd like
I would like to have a better performance and continue using JabRef while the abbreviations are loaded in the background.
Additional context
JabRef stores its internal abbreviations in a h2 mv database. Custom abbreviations are added to it. Refs #6304
The key problem is that all journal abbreviation stuff loading is done on the FX-Thread. This will block the user.
Solution: The files need to be loaded in a background task and added to JabRef's mv database.
It must be taken care of concurrent reading/writing issues when toggling the abbreviation button in the entry editor.
It must be considered that the journal Repo is injected everywhere.
The text was updated successfully, but these errors were encountered:
Apparently, the real bottleneck reside in the way duplicates are removed. Before an abbreviation entry gets added to the list, it will be searched and removed to make sure no duplicates are kept. I run the profiler and found 99.5% of abbreviation loading time goes to ArrayList#remove. This clearly happened because Lists are not optimized for removal. One possible solution for the bottleneck is to replace the list with another data structure, maybe a Set or a LinkedList.
Nonetheless the whole thing should not run on the FX Thread. The FX Thread should never do long running tasks. This will block the UI.
Is your suggestion for improvement related to a problem? Please describe.
As a User I have a huge list of custom abbreviations. Adding them will freeze JabRef for a couple of minutes and will produce other issues.
https://discourse.jabref.org/t/journal-abbreviations-with-dot/3400/4
Describe the solution you'd like
I would like to have a better performance and continue using JabRef while the abbreviations are loaded in the background.
Additional context
JabRef stores its internal abbreviations in a h2 mv database. Custom abbreviations are added to it. Refs #6304
The key problem is that all journal abbreviation stuff loading is done on the FX-Thread. This will block the user.
Solution: The files need to be loaded in a background task and added to JabRef's mv database.
It must be taken care of concurrent reading/writing issues when toggling the abbreviation button in the entry editor.
It must be considered that the journal Repo is injected everywhere.
The text was updated successfully, but these errors were encountered: