-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance issues with open entry editor #3175
Comments
The entry editor also seems to be the main source of our memory problems, see #3113. |
@AEgit Could you do me a favour and try out the version available here http://builds.jabref.org/entry-editor-performance/ This is a tiny improvement and I would be surprised if it has a big effect performance-wise. Its purpose is more to pave the way for an actual performance improvement that is still to come. But do you maybe notice something, e.g. a little improvement in the responsiveness of the entry editor? Moreover, it creates a visual effect: When selecting a new entry, then the tabs in the entry editor sort of "fly in". I am interested in your opinion about this effect. Do you maybe like it, is it no problem, or do you find it totally annoying? If the latter is the case, then this shouldn't go into 4.0 anymore. |
JabRef 4.0-dev--snapshot--2017-09-02--entry-editor-performance--548537f12 @lenhard This version does seem to be slightly faster (although, as you say, the improvement is probably rather small). It still does use, however, a lot of CPU performance. Regarding the visual effect: It is probably better without it - if you quickly change between different items it can happen that the tabs don't load properly or that it takes a while for them to appear (see appended image). |
Maybe, we have to use YourKit (see #3113 (comment)) to profile where the CPU is used? |
I just saw that the PreviewPanel is not yet translated to Javafx, maybe that could help to avoid these issues, too? |
@Siedlerchr Or it will increase them ;) The performance problems are with the entry editor, not with the preview panel. It seems that JavaFX didn't turn things for the better here... |
I was about to say that, but didn't want to sound sarcastic ;) |
Yes absolutely. Maybe there are still some inception problems with JavaFX. Swing is the old gui framework that hasn't been maintained for years and will not receive any future extensions. JavaFX is the new central gui framework for Java. But it just became a core part during the release and maintenance of Java 8. That's a reason to hope that things will get better on their own with a growing maturity of the framework and its implementation in the JDK. One very major milestone for this is the release of Java 9 which is due in two weeks. Having said that, I am absolutely sure that there are things to improve in the implementation in JabRef. We're right now half swing and half JavaFX and that certainly doesn't make for a better performance. Unfortunately, the migration from one framework to another is a very long-time thing. |
@AEgit There have been some performance improvements in the entry editor during the last days that should already be noticeable from a user perspective. You could try out the most recent build. On top of that, more performance improvements are in the pipeline. Right now it seems that we really stand a chance of getting back to a low-footprint JabRef :-) |
@lenhard : Cheers, I had another go with JabRef 4.1-dev--snapshot--2017-10-21--master--f71c5a8c7 I can confirm, that it appears faster than the previous builds. I think 3.8.2 still has a better performance, so I'll continue sticking with that version for my work, but once all the minor issues with version 4 are solved, I'll switch over. But overall, performance has definitely improved. Thank you very much for your hard work! |
@AEgit We have another pull requestion in the pipeline (#3333) that will improve things further. Once we have attacked all the high-resource hot spots, we can look at the details. I'm not sure I like the fly-in effect either. With some customizations, I could bring it down to keeping all visible tabs and the fly-in effect (that is probably adjustable by the style of the tab pane) is reduced to this. I'm still not sure I like it, but the only other option is to keep all tabs visible and just disable the ones that are not used Nevertheless, the main point is that we could bring down the memory consumption from about 2GB to 200MB which get more often garbage collected. |
@halirutan Thank you very much! I'll try the new builds from time to time and let you know, if I spot any issues. Regarding the fly-in effect: What about just keeping the old behaviour of JabRef 3.2.8, i. e. no specific effect at all (I guess that's the alternative option you are talking about)? |
These effects are not explicitly coded by us. They are artifacts of the new UI technology. |
I see, I misunderstood things then. Based on this comment #3175 (comment), I thought the effect had been added on purpose, as it hadn't always been part of the developmental builds of version 4. Thanks for clarifying this. |
With #3333 the tab animation will be disabled. |
@lynyus @AEgit @tobiasdiez
But I'm sure they are not artifacts either. With @tobiasdiez first PR, that added new tabs at the wrong position, I didn't see the movement. In fact, there is a
which is used when he invoked |
It is also possible to disable these animations using css, see cd6a2f8 |
So now that #3333 is merged, I think we can close this issue. The performance is now on an acceptable level. If you experience any problems, you know the drill: just reopen this issue (or create a new issue if its not really related to the performance of the entry editor). |
I can confirm, the performance compared to previous versions has massively improved in: Things I have noticed compared to JabRef 3.8.2:
Now, why am I saying "sometimes": It appears that the same (!) database opened in the new developmental version can consume between 1.4 to 4.4 GB of RAM (without doing much within JabRef). Initially I thought, that this different memory consumption might be related to how I treat the database at the immediate startup, i. e. whether I open the entry editor right at the start or whether I wait for a few seconds, until the database has "cooled off" (= no longer shows the high CPU consumption of step 1 reported above). But it does not seem to be related to that. So far I haven't found a way to reliably reproduce this behaviour: Sometimes the same database consumes 1.4-2 GB of RAM and sometimes it goes up to 4-4.4 GB. N. B.: I'm performing more or less the same actions on the database, i. e. opening the database and then potentially skip through a couple of items. Having said all of this I would really like to thank the developers for this massive improvement in performance! EDIT: The RAM "issue" might be related to #2533 (albeit the description given there differs from what I experienced, as the RAM consumption is already high at the startup of JabREF). |
JabRef 4.0-dev--snapshot--2017-08-31--master--54e0994ba
Windows 10 10.0 amd64
Java 1.8.0_141
This isn't really a bug, it's more an observation I made that I wanted to share, as it might affect some users.
Steps to reproduce:
Note, that this might be also related to the size of the databse (>6k entries).
Note furthermore, that this issue does not appear, if the entry editor is closed.
The text was updated successfully, but these errors were encountered: