Bug 172274 - Web project + GlassFish slowness
Web project + GlassFish slowness
Status: RESOLVED FIXED
Product: javaee
Classification: Unclassified
Component: Web Project
6.x
All All
: P3 (vote)
: 6.x
Assigned To: David Konecny
issues@javaee
perf-profileme
: PERFORMANCE
: 173978 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-09-15 12:03 UTC by Petr Jiricka
Modified: 2009-10-07 16:23 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Petr Jiricka 2009-09-15 12:03:42 UTC
This was originally a part of issue 170291, I am splitting it out to its own issue, as there are many false duplicates
in issue 170291.

Here is the report relevant to Web Project and GlassFish:

Build: NetBeans IDE Dev (Build 200908022240)
VM: Java HotSpot(TM) Client VM, 1.6.0_01-b06, Java(TM) SE Runtime Environment, 1.6.0_01-b06
OS: Windows Vista, 6.0, x86
Maximum slowness yet reported was 23306 ms, average is 10589

http://statistics.netbeans.org/exceptions/exception.do?id=242425

And here is the profiler snapshot:
http://www.netbeans.org/nonav/issues/showattachment.cgi/86168/snapshot.nps
Comment 1 David Konecny 2009-09-15 21:29:37 UTC
Looking at http://statistics.netbeans.org/exceptions/exception.do?id=242425 the total time is 3619ms out of which
biggest chunks are spent in:
- org.netbeans.modules.glassfish.spi.ServerUtilities.filterByManifest(): 2422 / 0
- org.netbeans.modules.web.project.ui.customizer.WebCompositePanelProvider.createCategory(): 447 / 0
First one spends about 2000ms in native methods read ZIP files and second one in loading properties.

Vince, what is ServerUtilities.filterByManifest doing? 
Comment 2 Vince Kraemer 2009-09-15 23:16:33 UTC
what does filterByManifest do? future-proof the plugin to some degree.

Earlier in the release cycle, the folks that package the the glassfish code would reshuffle the paths and content of the
jars that contained classes that support Java EE 6 development.

This random shuffle would break the Java EE 6/Glassfish development environment badly... usually at a time when we
needed it to be stable...

So, we established a convention that would allow the packagers to have the freedom to mess with names and content of
jars and the plugin to calculate the GlassFish server's library content dynamically.

This has served us well.

At this point, we may be able to revert to a static list of jars, safely... but I would like to avoid it.

Comment 3 David Konecny 2009-09-15 23:52:11 UTC
I will retest this on some mid size projects just to see what's the penalty. 
Comment 4 Vince Kraemer 2009-09-16 01:33:51 UTC
what if I make the call to initLibraries() async?  The IDE will start to build the list of classes/jars when the
Hk2JavaEEPlatformImpl is being built and must finish building the list before a call to
Hk2JavaEEPlatformImpl.getLibraries() can complete... but if the call to getLibraries() happens much later (about 3
seconds later in this case), the call will be able to return 'immediately' with the correct data.
Comment 5 David Konecny 2009-09-16 01:46:43 UTC
I'm not familiar with your code but if you are saying that you can return immediately and perform time consuming
operation later in a background thread then yeah go for it.
Comment 6 Quality Engineering 2009-09-18 22:23:59 UTC
Integrated into 'main-golden', will be available in build *200909181401* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/eb5aa6e67acb
User: Vince Kraemer <vkraemer@netbeans.org>
Log: #172274: push filterByManifest onto separate thread.
Comment 7 David Konecny 2009-09-22 01:51:10 UTC
Fixed by Vince. And if not we will get a new different perf report.
Comment 8 Vince Kraemer 2009-10-07 16:23:26 UTC
*** Issue 173978 has been marked as a duplicate of this issue. ***


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo