aptana/studio3 — pull request #207 by pinnamur (2014-06-03 23:08:12+00:00)
Title: TISTUD-6376 Appcelerator Studio 3.3.0.201405211748 (RC) is very slow to ...

- After investigating ton of jstack files and gigs of heap dumps, a potential case that is causing performance degrade and heap errors on QE machines is definitely to do with the git refresh jobs trying to track the external resources outside the workspace.

There are more than a million instances of ChangedFile objects floating around trying to track the external resources that does not belong to workspace. Though it is unclear how did Studio got into that situation to start tracking unrelated resources, a fix would be to make sure that we do not track those external unrelated resources.

Initially I tried to resolve the requested path using the workspace root, but since the requested path of the git repo starts from the git repo root (which is the project directory), we may not able to able to resolve into workspace resource unless it has knowledge about the project container. Since ChangeFile instance doesn't need to have knowledge about the parent project, the turn around fix would be to check whether the requested path is a absolute or relative. In the heap dumps, it is very clear that all those external resources are referenced by the absolute path, and the workspace specific resources are referenced through a relative path. That might be a good indicator for now to differentiate the workspace against non-workspace resources.