0

Is ZK Studio's ResourceListener properly optimized?

asked 2015-11-11 20:37:56 +0800

OLabrosse gravatar image OLabrosse
1

updated 2015-11-12 14:30:56 +0800

We are evaluating ZK for our web interface platform, and we're having issues with ZK Studio where any significant change to our workspace (dozens of plugins using PDE) causes tasks such as updating plugin dependencies, or an EGit refresh, to take a very long time, sometimes over an hour on a Core i7 system with SSD.

The reason I'm asking if ResourceListener is optimized is because it seems to be doing a lot of work and might very well be the cause of the slowdowns. Here's the stack trace I constantly see in a worker thread:

java.util.HashMap.putVal(Unknown Source)
java.util.HashMap.put(Unknown Source)
java.util.HashSet.add(Unknown Source)
org.zkoss.eclipse.setting.ResourceListener.visit(ResourceListener.java:134)
org.zkoss.eclipse.setting.ResourceListener.access$0(ResourceListener.java:67)
org.zkoss.eclipse.setting.ResourceListener$1.visit(ResourceListener.java:55)
org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:63)
org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:74)
org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:47)
org.zkoss.eclipse.setting.ResourceListener.resourceChanged(ResourceListener.java:50)
org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:299)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:289)
org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:152)
org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:373)
org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1470)
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:157)
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

As long as the Job is running, this code will run, causing high CPU usage. As soon as the Job ends, usually 15 to 60 minutes later depending on workspace changes, this stack trace is no longer found in any worker thread.

I guess the real question is, is there something that can be done, configuration or otherwise, to prevent this from happening?

Note that we never experienced this kind of issue before installing ZK Studio. Also note that it is a showstopper for us, as we lose too much productivity when this happens.

[Edited for clarification.]

delete flag offensive retag edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2015-11-26 13:43:48 +0800

OLabrosse gravatar image OLabrosse
1

Sales rep was contacted, and the issue was identified and corrected in an ad-hoc bundle.

Thank you ZK Team for your great support.

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow
1 follower

RSS

Stats

Asked: 2015-11-11 20:37:56 +0800

Seen: 33 times

Last updated: Nov 26 '15

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More