| Summary: | Source lookup is horribly inefficient | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [WebTools] JSDT | Reporter: | Michael Rennie <Michael_Rennie> | ||||
| Component: | Debug | Assignee: | Michael Rennie <Michael_Rennie> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Simon Kaegi <simon_kaegi> | ||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | thatnitind | ||||
| Version: | 3.3 | Keywords: | performance | ||||
| Target Milestone: | 3.3 M3 | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
applied to HEAD |
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.