Bug 61944 - [perf] Performance changes from profiling
Summary: [perf] Performance changes from profiling
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: VE (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: VE Bugzilla inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 49926 77674 86104 (view as bug list)
Depends on: 48547 88848 80616 80718 81016 82099 82101 82257 82327 82353 82567 82849 82876 82890 83039 83142 83189 83338 83442 83750 83762 84009 84048 84379 84429 84611 84708 84728 85141 85678 85772 85887 86479 86721 89211
Blocks:
  Show dependency tree
 
Reported: 2004-05-12 12:43 EDT by Richard Kulp CLA
Modified: 2011-06-13 11:36 EDT (History)
10 users (show)

See Also:


Attachments
ReloadAction with minor corrections (save image descriptor, NL text) (4.58 KB, text/plain)
2005-01-19 14:06 EST, Dan Kehn CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Kulp CLA 2004-05-12 12:43:55 EDT
This defect is for tracking changes made for performance improvements made from
profiling the VE.
Comment 1 Richard Kulp CLA 2004-05-12 15:31:38 EDT
Minor: Released palette when rebuilt is placed into to palette root as one unit
rather than each individual category removed and then added back. This will
allow the rebuild of the palette to be one chunk.
Comment 2 Richard Kulp CLA 2004-08-04 17:49:15 EDT
The new TypeResolver has been released. This increases the performance load
model (i.e. just the parsing of the AST done to create the EMF model) by 25% or
more.
Comment 3 Richard Kulp CLA 2004-08-10 13:54:39 EDT
Released to HEAD some minor performance improvements. Add concept of invokable
in proxy so that if you are calling a method only once or twice there is no need
to get the method proxy first. This has the advantage of no extra turn-around
with the remote vm. The find method and invoke is done all in one transation.

Some other minor ones too.
Comment 4 Richard Kulp CLA 2004-08-16 14:05:09 EDT
Released to HEAD code to:

1) Use invoke invokable instead of invoke methodproxy for most places where a
method is infrequently invoked and so we don't need the overhead of an extra
call to get a method proxy.

2) Have a spare vm sitting around for a project so that while java ve's are
active they don't need to create a new editor. There will be one available for
them to use immediately.
Comment 5 Peter Walker CLA 2004-08-17 17:27:46 EDT
*** Bug 49926 has been marked as a duplicate of this bug. ***
Comment 6 Richard Kulp CLA 2004-12-15 12:53:52 EST
FYI: The bugs in depends on list at the top are other specific bugzilla bugs
used for tracking specific performance changes. This bug is for small ones that
don't need a separate bug and to use as an anchor to find all of the specific
performance bugs thru the depends on list.
Comment 7 Dan Kehn CLA 2005-01-05 13:57:36 EST
Calls to IWorkbenchPage.showView in 
JavaVisualEditorPart.openVCEViewersIfRequired should specify 
IWorkbenchPage.VIEW_VISIBLE to avoid unnecessary flashing and negate the need 
to reactivate the editor.  YourKit measurements shows this reduces 
openVCEViewersIfRequired's contribution from 350ms to 20ms.
Comment 8 Peter Walker CLA 2005-01-05 15:21:32 EST
Updated JavaVisualEditorPart.openVCEViewersIfRequired() with calls to showView
with IWorkbenchPage.VIEW_VISIBLE to avoid unnecessary flashing and negate the
need to reactivate the editor.
Code released to HEAD and will be in the next nightly build.
Comment 9 Gili Mendel CLA 2005-01-13 16:16:18 EST
Released a mostly complete fix for Bug 82099.  See Bug 82099 for Decoders API
changes.
Comment 10 Peter Walker CLA 2005-01-14 10:55:12 EST
It's a minor nugget but could help improve performance for applications that are
fairly large - reduce the thread of the job that starts the spare remote VM.
This VM is launched 10 secs after the first remote VM is launched and is used
for the subsequent editor that is opened. Since some applications may take more
than 10-20 secs, the running of this job... although fairly quick... still takes
away a few cycles which could impact the current editor coming up.
Comment 11 Peter Walker CLA 2005-01-14 11:21:24 EST
Changed JavaVisualEditorVMController to reduced job thread priority for starting
the spare remote vm. When job is finished, restored thread to original priority.
Code released on 1/14/05. Should be in the first VE 1.1 build.
Comment 12 Dan Kehn CLA 2005-01-19 14:04:26 EST
Minor: 

I took one final look at the gif reload question and noted the code in 
ReloadAction was recreating the image descriptor each time its check state 
changed (e.g., CDEPlugin.getImageDescriptorFromPlugin(JavaVEPlugin.getPlugin
(), "icons/full/cview16/play.gif")). While not a huge boo-boo in the grand 
scheme of things, it does traipse through some fairly non-trivial code like 
Platform.find(Bundle, Path) and defeats the checks in Action (this class 
checks in its set methods for a "non change", which fails for 
setImageDescriptor in this case).

It's a trivial correction and one that Eclipse code follows systematically:

private void setCorrectText() {
  if (isChecked()) {
    setToolTipText(CodegenEditorPartMessages.getString
        ("JVE_STATUS_MSG_RELOAD")); //$NON-NLS-1$
    setText(getToolTipText());
    setHoverImageDescriptor(PLAY_IMAGE_DESCRIPTOR);
  } else {
    setToolTipText(CodegenEditorPartMessages.getString
        "JVE_STATUS_MSG_PAUSE")); //$NON-NLS-1$
    setText(getToolTipText());
    setHoverImageDescriptor(PAUSE_IMAGE_DESCRIPTOR);
  }
}

I promoted the CDEPlugin.getImageDescriptorFromPlugin(JavaVEPlugin.getPlugin
(), "icons/full/cview16/play.gif") up to a constant and some NL strings. I 
encourage you to be on the lookout for these sorts of "good hygiene issues" 
during your analysis.  It's no-brainer corrections that add up.
Comment 13 Dan Kehn CLA 2005-01-19 14:06:30 EST
Created attachment 17285 [details]
ReloadAction with minor corrections (save image descriptor, NL text)
Comment 14 Peter Walker CLA 2005-02-22 08:56:04 EST
*** Bug 86104 has been marked as a duplicate of this bug. ***
Comment 15 Richard Kulp CLA 2005-07-28 16:37:17 EDT
*** Bug 77674 has been marked as a duplicate of this bug. ***