Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 328884

Summary: Source lookup is horribly inefficient
Product: [WebTools] JSDT Reporter: Michael Rennie <Michael_Rennie>
Component: DebugAssignee: Michael Rennie <Michael_Rennie>
Status: RESOLVED FIXED QA Contact: Simon Kaegi <simon_kaegi>
Severity: normal    
Priority: P3 CC: thatnitind
Version: 3.3Keywords: performance
Target Milestone: 3.3 M3   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
proposed fix none

Description Michael Rennie CLA 2010-10-27 16:17:47 EDT
Created attachment 181878 [details]
proposed fix

code from HEAD

In its current state looking up external source performs terribly. Consider the following example:

1. connect to Crosssfire
2. suspend Firebug
3. source takes a lifetime to get the first time - has to go across the wire + maybe create the external sourc eproject + create the local replica of the source
4. resume Firebug
5. repeat steps 1 to 3 and notice it takes forever again

The reason is that we always ask the remote target for its source every single time - over the wire + create local replicas. We should do some caching to prevent so many over-the-wire calls. 

We should also change how we write the local file:

/External JavaScript Source/12346448/-211237349/webtrends.js

makes no sense compared to:

/External JavaScript Source/support.mozilla.com/media/js/webtrends.js

The attached patch adds some caching and better file creation. The source cache life-cycle is the same as the participant - it is cleared when the corresponding debug target is terminated.
Comment 1 Michael Rennie CLA 2010-10-27 16:18:48 EDT
applied to HEAD