{"action":"created","issue":{"url":"https://api.github.com/repos/adobe/brackets/issues/11093","labels_url":"https://api.github.com/repos/adobe/brackets/issues/11093/labels{/name}","comments_url":"https://api.github.com/repos/adobe/brackets/issues/11093/comments","events_url":"https://api.github.com/repos/adobe/brackets/issues/11093/events","html_url":"https://github.com/adobe/brackets/issues/11093","id":75483728,"number":11093,"title":"[Performance] Find In Files Optimization","user":{"login":"rroshan1","id":11662297,"avatar_url":"https://avatars.githubusercontent.com/u/11662297?v=3","gravatar_id":"","url":"https://api.github.com/users/rroshan1","html_url":"https://github.com/rroshan1","followers_url":"https://api.github.com/users/rroshan1/followers","following_url":"https://api.github.com/users/rroshan1/following{/other_user}","gists_url":"https://api.github.com/users/rroshan1/gists{/gist_id}","starred_url":"https://api.github.com/users/rroshan1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rroshan1/subscriptions","organizations_url":"https://api.github.com/users/rroshan1/orgs","repos_url":"https://api.github.com/users/rroshan1/repos","events_url":"https://api.github.com/users/rroshan1/events{/privacy}","received_events_url":"https://api.github.com/users/rroshan1/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/adobe/brackets/labels/Development","name":"Development","color":"006b75"},{"url":"https://api.github.com/repos/adobe/brackets/labels/performance","name":"performance","color":"e10c02"},{"url":"https://api.github.com/repos/adobe/brackets/labels/release-14","name":"release-14","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"rroshan1","id":11662297,"avatar_url":"https://avatars.githubusercontent.com/u/11662297?v=3","gravatar_id":"","url":"https://api.github.com/users/rroshan1","html_url":"https://github.com/rroshan1","followers_url":"https://api.github.com/users/rroshan1/followers","following_url":"https://api.github.com/users/rroshan1/following{/other_user}","gists_url":"https://api.github.com/users/rroshan1/gists{/gist_id}","starred_url":"https://api.github.com/users/rroshan1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rroshan1/subscriptions","organizations_url":"https://api.github.com/users/rroshan1/orgs","repos_url":"https://api.github.com/users/rroshan1/repos","events_url":"https://api.github.com/users/rroshan1/events{/privacy}","received_events_url":"https://api.github.com/users/rroshan1/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/adobe/brackets/milestones/36","html_url":"https://github.com/adobe/brackets/milestones/Release%201.4","labels_url":"https://api.github.com/repos/adobe/brackets/milestones/36/labels","id":1048084,"number":36,"title":"Release 1.4","description":"","creator":{"login":"ryanstewart","id":45450,"avatar_url":"https://avatars.githubusercontent.com/u/45450?v=3","gravatar_id":"","url":"https://api.github.com/users/ryanstewart","html_url":"https://github.com/ryanstewart","followers_url":"https://api.github.com/users/ryanstewart/followers","following_url":"https://api.github.com/users/ryanstewart/following{/other_user}","gists_url":"https://api.github.com/users/ryanstewart/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanstewart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanstewart/subscriptions","organizations_url":"https://api.github.com/users/ryanstewart/orgs","repos_url":"https://api.github.com/users/ryanstewart/repos","events_url":"https://api.github.com/users/ryanstewart/events{/privacy}","received_events_url":"https://api.github.com/users/ryanstewart/received_events","type":"User","site_admin":false},"open_issues":32,"closed_issues":5,"state":"open","created_at":"2015-04-01T04:03:49Z","updated_at":"2015-05-14T07:50:26Z","due_on":"2015-06-14T18:30:00Z","closed_at":null},"comments":1,"created_at":"2015-05-12T06:28:14Z","updated_at":"2015-05-15T16:10:51Z","closed_at":null,"body":"- [x] Measure the performance of \"Find In Files\".\r\n- [ ] Compare the same with other Brackets-like editors.\r\n- [ ] Analyzing the scope for improvements in \"Find In Files\".\r\n- [ ] Implement the optimizations.\r\n- [ ] Measure the improvements.\r\n\r\n*Method used to measure the performance*:-\r\n\r\nWe have run multiple FindInFiles searches and used iPhone 5S to capture the slo-mo (slow-motion) videos with 120 fps. After capturing the videos, we used Adobe Premier-Pro to calculate the time elapsed in the searches to the nearest frames (accuracy= 1/30th of a second). \r\n\r\n*Parameters to consider for testing this*.\r\n\r\n1) Test this for small(<500 files), medium(5K files approx) and large(>25K) projects.\r\n2) Run it on Windows and Mac systems with most likely configurations.\r\n3) Find the performance differences in a repeated search, case-sensitive search and the very first search."},"comment":{"url":"https://api.github.com/repos/adobe/brackets/issues/comments/102450156","html_url":"https://github.com/adobe/brackets/issues/11093#issuecomment-102450156","issue_url":"https://api.github.com/repos/adobe/brackets/issues/11093","id":102450156,"user":{"login":"rroshan1","id":11662297,"avatar_url":"https://avatars.githubusercontent.com/u/11662297?v=3","gravatar_id":"","url":"https://api.github.com/users/rroshan1","html_url":"https://github.com/rroshan1","followers_url":"https://api.github.com/users/rroshan1/followers","following_url":"https://api.github.com/users/rroshan1/following{/other_user}","gists_url":"https://api.github.com/users/rroshan1/gists{/gist_id}","starred_url":"https://api.github.com/users/rroshan1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rroshan1/subscriptions","organizations_url":"https://api.github.com/users/rroshan1/orgs","repos_url":"https://api.github.com/users/rroshan1/repos","events_url":"https://api.github.com/users/rroshan1/events{/privacy}","received_events_url":"https://api.github.com/users/rroshan1/received_events","type":"User","site_admin":false},"created_at":"2015-05-15T16:10:51Z","updated_at":"2015-05-15T16:10:51Z","body":"**WINDOWS Configuration**\r\n\r\nOS: Windows 7 Enterprise 64-bit.\r\nProcessor: Intel Xeon E3, 3.40 GHz.\r\nRAM: 16 GB.\r\n\r\nEDITORS | Small Project | Medium Project | Large Project\r\n------------ | ------------- | ------------ | -------------\r\n**Brackets v1.3** | 133 msec  | 741 msec  | 2767 msec \r\n**Atom** | 350 msec | 3941 msec | 3950 msec\r\n**Visual Studio Code** | - | 1733 msec  | 9066 msec \r\n**Sublime Text 2** |  33 msec  | 1100 msec | 5241 msec\r\n*Refer following section for Visual Studio Code and Sublime Text limitations!*\r\n\r\n\r\n**Limitations**\r\n1. Almost all of the editors are very slow at the first search and perform consistently after the second search. Hence, readings have been noted from second search onwards.\r\n2. **Sublime Text** populates the search results in an editor. There is no indicator to show that the search has ended (unless you keep on scrolling to the end of the page). Hence, we had to go for searches with occurrence in single digits for Sublime.\r\n3. **Visual Studio Code** cannot handle searches even for 2100 occurrences approx. Hence, most readings for it are for a subset of the search (around 2000 occurrences) it has done and not the entire search.\r\n4. For all editors, the time taken for a repeated search or a case-sensitive search does not significantly differ. However, the time taken for a single and multi-word search does differ. We have taken readings for two single-word search and two multi-word search and displayed the average in the table above.\r\n\r\nBelow is a graphical comparison of the performances:-\r\n![findinfilesperf](https://cloud.githubusercontent.com/assets/11662297/7656515/87da2742-fb48-11e4-8962-a99131d6e08b.jpg)\r\n\r\n**Analysis**\r\nBrackets performs much better than most editors for most types of project. However, the very first \"Find In Files\" search takes much longer than other editors and also makes Brackets kind of non-responsive. This may be giving a very bad and untrue perception to the users about this performance when other editors populate their search results progressively!!"}}