On remote disks when projects are in VCS try to use VCS information for detecting changed files (on local disk makes no sense as up to date check is 1.7% of time). It may be useful at least for APISupport project type replace the project queries by the VCS information and last state (when IDE turns off serialize the dependence map, on start up if nothing changes except of sources use the serialized state rather than building it by project queries).
Implemented in the https://email@example.com/prototypes/, branch treestamp-207232.
The implementation with plugin for mercurial slows done up to date check 12 times.
Tested on java.editor + deps:
IDE without hg tree stamps: up to date check 28s
IDE with hg tree stamps: up to date check 5 min : 48s
Conclusion: Closing as it does not bring any performance benefit, at least for the only implemented plugin.
There may be some benefit for ADE, so consider to reopen when ADE plugin will be done.
Created attachment 117863 [details]
Test implementation for ADE
I've attached ADE TreeStamp implementation.
It's just a prototype to allow as to measure behavior, it uses are describetrans to get the label and changes in label. Unfortunately it does not support changes among labels as I didn't found an ade command for this.
Created attachment 117900 [details]
Implementation of TreeStamp for ADE (works even when no label)
Unfortunately even for ADE the up to date check time did not improve significantly. The problem is that the original actions were: crawler checks the time stamps followed by FU.addRecursiveListener which also crawls the same folders. Now the actions are replaced by ADE operation followed by FU.addRecursiveListener which has nearly the same time as FU.addRecursiveListener + Crawler.collectResource due to FS caching.
(In reply to comment #4)
> Created attachment 117900 [details]
> Implementation of TreeStamp for ADE (works even when no label)
I cannot work without label. You probably mean that it works without a transaction. Am I right?