This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 222135 - com.sun.tools.javac.jvm.ClassReader.fillIn: LowPerformance took 33808 ms.
Summary: com.sun.tools.javac.jvm.ClassReader.fillIn: LowPerformance took 33808 ms.
Status: RESOLVED WONTFIX
Alias: None
Product: javaee
Classification: Unclassified
Component: JSF (show other bugs)
Version: 7.2
Hardware: All All
: P3 normal (vote)
Assignee: Martin Fousek
URL:
Keywords: PERFORMANCE
Depends on: 210214
Blocks:
  Show dependency tree
 
Reported: 2012-11-14 16:17 UTC by Exceptions Reporter
Modified: 2016-07-07 08:56 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter: 195137


Attachments
nps snapshot (91.20 KB, application/nps)
2012-11-14 16:17 UTC, Exceptions Reporter
Details
patch for fixing (6.29 KB, patch)
2012-12-04 17:23 UTC, Martin Fousek
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Exceptions Reporter 2012-11-14 16:17:06 UTC
This issue was reported manually by dbalek.
It already has 1 duplicates 


Build: NetBeans IDE 7.2 (Build 201207171143)
VM: Java HotSpot(TM) Client VM, 22.1-b02, Java(TM) SE Runtime Environment, 1.7.0_03-b05
OS: Windows Vista

User Comments:
GUEST: running a jsp file



Maximum slowness yet reported was 33808 ms, average is 33808
Comment 1 Exceptions Reporter 2012-11-14 16:17:10 UTC
Created attachment 127799 [details]
nps snapshot
Comment 2 Marek Fukala 2012-11-29 15:28:44 UTC
web.core.WebExecSupport.getFileAndParameters()
    JSFFrameworkProvider.isInWebModule() 8seconds
    HibernateFrameworkProvider.isInWebModule() 3 seconds
    StrutsFrameworkProvider.isInWebModule()

Apparently the WES should not run this in EDT.

web.core issue - however I cannot find appropriate category in IZ, reassigning to "default owner" :-)
Comment 3 Marek Fukala 2012-11-29 15:29:25 UTC
Please pass to appropriate module/person. Thanks.
Comment 4 Petr Jiricka 2012-12-03 12:57:07 UTC
Martin and Sergey, can you please look at these cases? It's JSF and Struts for Martin, and Hibernate for Sergey. Thanks.
Comment 5 Martin Fousek 2012-12-04 17:20:45 UTC
(In reply to comment #4)
> Martin and Sergey, can you please look at these cases? It's JSF and Struts for
> Martin, and Hibernate for Sergey. Thanks.

I agree with Marek (comment #2) that this shouldn't be solved in the framework clients but rather in the code above them - 1, we should count with non-optimalized foreign Web frameworks and 2, it's often not even possible to make calls faster than they are already now - they still need to wait for some actions or have to return wrong values which is in this case undesirable.

But the WES.getFileAndParameters() doens't look to me powerful enough too since the invoked action of ActionProvider in UI would still need to wait for finishing that BG action. :/

So I'm afraid that since the users clicks for running particular file, there is not many ways for performance improvements (no time for background precomputation) and that we will have to display some kind of dialog.

David, finally all changes I made are in the web.project. Do you want to review them or can I commit into your module? You can take a look on the attached patch. Thanks a lot!
Comment 6 Martin Fousek 2012-12-04 17:23:36 UTC
Created attachment 128852 [details]
patch for fixing

BTW. I forgot to say that the AWT EDT is slowed down above all due to slow native filesystem operations (just the #getBooleanAtributtes() it's about 5,5s in case of JSF). On the other side here is a place for better interaction and behaviour from the IDE.
Comment 7 David Konecny 2012-12-04 19:54:52 UTC
Martin, the patch looks OK. There is also issue 210214 where I'm thinking of redesigning ActionProvider to have better control what gets execute in the AWT and outside of AWT - at the moment everything runs in AWT which is wrong.
Comment 8 Martin Fousek 2012-12-05 07:45:48 UTC
(In reply to comment #7)
> Martin, the patch looks OK.

Thanks for reviewing.

> There is also issue 210214 where I'm thinking of redesigning ActionProvider to > have better control what gets execute in the AWT and outside of AWT - at the 
> moment everything runs in AWT which is wrong.

That's good idea - it would definitely make sense to me.

After fixing 210214 probably all actions/targets of ActionProviders will be reviewed whether they could be called outside of the EDT or not. For Run file will be still necessary to wait for the result before the action runs but I guess that these new Runnables can be just moved to the background thread with showing action in the bottom progress bar then - which is actually more user friendly behaviour, so I'm still really fan of #210214.

Fixed in web-main #b1449e5d3c26.
Comment 9 Martin Fousek 2012-12-05 07:51:35 UTC
Sorry, I wanted to avoid manual merge, final changeset is web-main #2046750f5fc1.
Comment 10 Quality Engineering 2012-12-07 02:39:49 UTC
Integrated into 'main-golden', will be available in build *201212070001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/2046750f5fc1
User: Martin Fousek <marfous@netbeans.org>
Log: #222135 - com.sun.tools.javac.jvm.ClassReader.fillIn: LowPerformance took 33808 ms.
Comment 11 Martin Fousek 2013-02-26 08:06:54 UTC
On the base of the conclusion from the issue #226036 I'm reopening this one which becames bug #210214 dependent since I don't see a better way how to fix this slowness without the API change.
Comment 12 Martin Balin 2016-07-07 08:56:38 UTC
This old bug may not be relevant anymore. If you can still reproduce it in 8.2 development builds please reopen this issue.

Thanks for your cooperation,
NetBeans IDE 8.2 Release Boss