Skip to content

Improve startup performance (especially when opening files) #5362

@tobiasdiez

Description

@tobiasdiez

I investigated the performance when starting JabRef and found the following things that can be improved:

  • At the moment, opening a file blocks the JavaFX thread which makes the impression that JabRef is frozen. Instead an empty database should be opened immediately (with the correct name), which shows a progress indicator in the maintable until the database is parsed. In particular, files should be parsed in a background thread and not on the JavaFX thread.

    This applies also to the files that are opened at the beginning: This is fixed with Performance improvements for GUI start up #5423

  • When opening a file,

    BackupManager.start(context, Globals.entryTypesManager, prefs);

    invokes the backup manager, which creates a backup file. This shouldn't be necessary as there were no changes to the file yet.

  • The group side panel should be converted from fxml to plain Java code (parsing fxml takes about 500ms)

  • When opening a database, the autocompletion is initalized on the main thread.

    // Set up name autocompleter for search:
    instantiateSearchAutoCompleter();
    this.getDatabase().registerListener(new SearchAutoCompleteListener());
    setupAutoCompletion();

    This should be done in a background thread. This is fixed with Performance improvements for GUI start up #5423.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Normal priority

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions