-
Notifications
You must be signed in to change notification settings - Fork 233
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
Protege UI is very slow with the recent java #723
Comments
I did some further testing. Seems to be a java bug specific to macOS. The problem first appears in Java 1.8.0_131. Works fine for me with the previous release 1.8.0_121. The following part of the release notes is probably relevant:
|
Here is a test to reproduce the problem without Protege:
For the previous version of java, I see about 1-2 milliseconds for 10 calls of getMousePosition(). With the recent version it is about 200 milliseconds. Filed a java bug report. Will post here a link when it is accepted. |
Here is the link to the java bug: JDK-8189934 |
Brilliant - thanks a lot @ykazakov. I'll have a look at this as soon as I can and see if I can implement some kind of sensible workaround. |
I think a sensible workaround would be not to include any recent JRE in the version for macOS until this bug is fixed. I don't think the platform-independent version is used very often, but I could be wrong. |
@ykazakov this seems stale now. I'll close this issue. |
@matthewhorridge this could be a deal breaker for #822. It does not look like it has been fixed yet in Java 11. Worth at least keeping eye on this issue. |
@ykazakov thanks so much for the heads up. Really appreciate it. |
Just checked: as of java 11.0.2 this issue is not fixed yet. |
Thanks so much for checking this @ykazakov |
Reopened this issue because this is still a concern |
Seems that u121 is okay but after that, the performance of getMousePosition causes a little lag in the UI. Just wondering whether this is a real problem vs upgrading to the latest Java for security benefits. |
This workaround enabled faster browsing through entities, but there is a noticeable delay in showing hyperlinks when mousing over expressions.
Frankly, I find the lag to be a big annoyance. I did not anticipate that it would take so long to fix it. Perhaps something could be improved programmatically, e.g., by caching the mouse location. But even 20ms per mouse location query is a lot. Are there any serious security issues that have been fixed after u121? |
More caching added to improve performance
Yeah, after more testing, it is annoying. I've just committed some code that adds a cache and this improves things somewhat. |
I'm not sure about this. I want to update Java to fix the problem with LetsEncrypt certificates |
Thanks for looking. Hmmmm okay, I'm seeing much better performance than this |
The version of java I am using: |
I'm on (for testing) java version "1.8.0_201" |
will try that |
Okay, I wasn't testing with pizza.owl, but when I do, I see terrible performance. |
Will stick with u121 max |
You can still update jre for windows and linux. As far as I understand, this is only a mac issue. |
I'll update to u121 for all platforms.... don't want more variation for bug reporting. |
@ykazakov thanks for all of your help with this |
in MList the method getMousePosition() was cached, but OWLCellRenderer calls getMousePosition(boolean) that was not cached
@matthewhorridge I checked your workaround with caching and it is actually working! You just cached the wrong method ;-) |
@ykazakov Thanks a lot for the PR. I think performance is good enough now... upgrading past Java 8u121 should be possible (i.e. to Java 11 OpenJDK). |
@matthewhorridge I think so. I will do a bit more testing, but I think this ticket can be closed for now. |
For me Protege jumps to the next subclass after a significant delay (about half a second).
Previously it was almost instant.
I did some investigation. It turns out the problem happens with the recent version of java (1.8.0_144 and 1.8.0_152 from today). It works swiftly with java 1.8.0_77 and before:
Here is what I see in the profiler (VisualVM, Hot Spots, sorted by CPU time) for java 1.8.0_152:
As you can see, over 90% of CPU time is spent on getting the mouse position.
In comparison, here is the same picture for java 1.8.0_77:
Possibly a java bug?
Running on macOS 10.13 (17A405)
The text was updated successfully, but these errors were encountered: