-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Change project cause Brackets freeze on Linux #11833
Comments
Every time when you change the project? Or sometimes Brackets changes the project without problems? |
Unfortunately every time, with v1.4 the project switch was immediate. |
Are you using external dependencies such as If you are, try installing a file filter such as https://github.com/gruehle/exclude-folders and see if the performance returns to normal. |
Ok, I used https://github.com/zaggino/brackets-file-tree-exclude instead (but is the same things) and the project loading returns immediate, but this is only a workaround. |
What is the machine configuration [processor,ram etc]? |
This is my hardware info:
RAM
HDD
I open a project and then switch to an other, when the second project is loaded I try to open (for example) file menu. Below I paste the health report and time taken to open that menu. ~20s (brackets-file-tree-exclude disabled) {
"uuid": "2d93b812-a410-4400-ab72-f4dedcf537ba",
"snapshotTime": 1445248859753,
"os": "linux",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.80 Safari/537.36",
"osLanguage": "it",
"bracketsLanguage": "it",
"bracketsVersion": "1.5.0-16538",
"fileStats": {
"openedFileExt": {
"scss": 2,
"php": 1,
"tpl": 3
},
"workingSetFileExt": {
"php": 1,
"tpl": 1
}
},
"ProjectDetails": {
"prj2116600247": {
"numFiles": 8196,
"cacheSize": 230397178
},
"prj224439420": {
"numFiles": 6382,
"cacheSize": 39221576
}
},
"projectLoadTimes": ":1:0",
"fileOpenTimes": ":2:0",
"ModuleDepsResolved": 30,
"AppStartupTime": 32,
"prefNodeSearchDisabled": false,
"prefInstantSearchDisabled": false,
"installedExtensions": [
{
"name": "brackets-file-tree-exclude",
"version": "1.0.3"
},
{
"name": "adobe.brackets.extract",
"version": "0.8.0-1749-release"
},
{
"name": "enturn.quick-search",
"version": "1.1.4"
},
{
"name": "angularui.angularjs",
"version": "1.1.2"
},
{
"name": "brackets-angularjs-codehints",
"version": "0.0.3"
},
{
"name": "brackets-grunt",
"version": "0.2.7"
},
{
"name": "brackets-materialangularjs-codehints",
"version": "0.0.2"
},
{
"name": "ivogabe.icons",
"version": "1.5.5"
},
{
"name": "brackets-beautify",
"version": "1.2.0"
},
{
"name": "mikaeljorhult.brackets-todo",
"version": "0.8.1"
},
{
"name": "equals182.eqftp",
"version": "0.7.0"
},
{
"name": "zaggino.brackets-git",
"version": "0.14.32"
},
{
"name": "zaggino.brackets-snippets",
"version": "0.6.1"
}
],
"bracketsTheme": "dark-theme"
} ~1s (brackets-file-tree-exclude enabled) {
"uuid": "2d93b812-a410-4400-ab72-f4dedcf537ba",
"snapshotTime": 1445249118679,
"os": "linux",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.80 Safari/537.36",
"osLanguage": "it",
"bracketsLanguage": "it",
"bracketsVersion": "1.5.0-16538",
"fileStats": {
"openedFileExt": {
"scss": 3,
"php": 1,
"tpl": 4
},
"workingSetFileExt": {
"php": 1,
"tpl": 1
}
},
"ProjectDetails": {
"prj2116600247": {
"numFiles": 451,
"cacheSize": 169629568
},
"prj224439420": {
"numFiles": 399,
"cacheSize": 5235113
}
},
"projectLoadTimes": ":1:0",
"fileOpenTimes": ":1:1",
"ModuleDepsResolved": 1,
"AppStartupTime": 3,
"prefNodeSearchDisabled": false,
"prefInstantSearchDisabled": false,
"installedExtensions": [
{
"name": "adobe.brackets.extract",
"version": "0.8.0-1749-release"
},
{
"name": "enturn.quick-search",
"version": "1.1.4"
},
{
"name": "angularui.angularjs",
"version": "1.1.2"
},
{
"name": "brackets-angularjs-codehints",
"version": "0.0.3"
},
{
"name": "brackets-file-tree-exclude",
"version": "1.0.3"
},
{
"name": "brackets-grunt",
"version": "0.2.7"
},
{
"name": "brackets-materialangularjs-codehints",
"version": "0.0.2"
},
{
"name": "ivogabe.icons",
"version": "1.5.5"
},
{
"name": "brackets-beautify",
"version": "1.2.0"
},
{
"name": "equals182.eqftp",
"version": "0.7.0"
},
{
"name": "mikaeljorhult.brackets-todo",
"version": "0.8.1"
},
{
"name": "zaggino.brackets-git",
"version": "0.14.32"
},
{
"name": "zaggino.brackets-snippets",
"version": "0.6.1"
}
],
"bracketsTheme": "dark-theme"
} I have lot of project with node modules or bower components, note the project size ("numFiles": 8196 and "numFiles": 6382) become smaller by excluding some folders using that plugin ("numFiles": 451, "numFiles": 399) |
can you open |
Unfortunately no change when disabling that preference. |
Is this on ext3 filesystem or some other? |
My filesystem type is ext4 |
I am pretty confident that the problem lies in the file watchers and other File-related functionalities. Similar ones: #11777 - Brackets become unresponsive during etc. etc. Filtering them out brings back performance but it's not an optimal solution: for example one would want to look into |
Exactly my concern. |
What coud be a solution to this issue then? |
I was thinking something along the lines:
Benefits
Risks
How does that sound @abose? |
Could just read |
Or a simple setting value with path to ignore in watch is a solution |
The root causes of the file accesses at project switch time are these:
Addressing 2&3 should fix the performance issues without any user input. 3 is easier to implement than 2. |
Noticing the same problem. It lasts 5 full minutes on my side which is another level of bothersome. |
@DavidBruant how many file have you project? Can you post the health report? |
|
@DavidBruant the files aren't actually ignored by Brackets just yet, try one of the extensions mentioned and see if the performance returns :) |
Brackets - for developers. Developers must see only code, that they code. There is no reason to include libraries, that are developed in other project. So, I see only solution - to exclude any file, that not belongs to the project. (read the .*ignore files) |
https://github.com/zaggino/brackets-file-tree-exclude is the extension to exclude files from brackets. |
I had missed that part of the discussion. I tried https://github.com/zaggino/brackets-file-tree-exclude , it worked like a charm. Thanks! |
I confirm this issue on Linux Mint Debian 64 bit. My hardware info if it can help:
Here's my Brackets 1.5 health report: {
"uuid": "6d87ccc8-6932-40f3-908f-4efab7b41572",
"snapshotTime": 1445939747945,
"os": "linux",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.80 Safari/537.36",
"osLanguage": "en",
"bracketsLanguage": "en",
"bracketsVersion": "1.5.0-16538",
"fileStats": {
"openedFileExt": {
"html": 1,
"css": 1,
"js": 4
},
"workingSetFileExt": {
"html": 1,
"js": 1
}
},
"ProjectDetails": {
"prj-502147004": {
"numFiles": 7234,
"cacheSize": 125832501
}
},
"projectLoadTimes": ":0",
"fileOpenTimes": ":1",
"ModuleDepsResolved": 251,
"AppStartupTime": 253,
"prefNodeSearchDisabled": true,
"prefInstantSearchDisabled": true,
"installedExtensions": [
{
"name": "rain.monokai-dark-soda",
"version": "1.0.8"
},
{
"name": "brackets-ruler",
"version": "2.3.12"
},
{
"name": "jonwolfe.file-tree-exclude",
"version": "0.6.3"
},
{
"name": "brackets-paste-and-indent",
"version": "0.2.0"
},
{
"name": "deddy.additional-right-click-menu",
"version": "0.5.1"
},
{
"name": "dkehrig.show-whitespace",
"version": "2.0.1"
},
{
"name": "pessotti.doubleclick-match-brackets",
"version": "1.0.0"
},
{
"name": "globexdesigns.brackets-jscs",
"version": "0.7.5"
},
{
"name": "dag0310.tab-out",
"version": "1.1.0"
},
{
"name": "talmand.select-lines",
"version": "1.3.0"
},
{
"name": "brackets-add-comment",
"version": "0.1.2"
},
{
"name": "pretty_json",
"version": "0.1.2"
},
{
"name": "yellowhangar.guidelines",
"version": "1.0.1"
},
{
"name": "camden.jshint",
"version": "2.2.18"
},
{
"name": "brackets-indent-guides",
"version": "1.3.5"
},
{
"name": "ws-sanitizer",
"version": "1.2.1"
},
{
"name": "asgerf.bracket-rename",
"version": "0.2.9"
},
{
"name": "funcdocr",
"version": "0.8.33"
},
{
"name": "gruehle.markdown-preview",
"version": "1.0.11"
},
{
"name": "brackets-angularjs-codehints",
"version": "0.0.3"
},
{
"name": "qw0101.colorhighlighter",
"version": "1.0.0"
},
{
"name": "edc.brackets-snippets",
"version": "1.8.1"
},
{
"name": "brackets-vimderbar",
"version": "0.11.1"
},
{
"name": "nerk.asciidoc-preview",
"version": "1.1.8"
},
{
"name": "dnbard.extensions-rating",
"version": "0.7.3"
},
{
"name": "nicolo-ribaudo.brackets-svg-font",
"version": "0.4.5"
},
{
"name": "ivogabe.icons",
"version": "1.5.5"
},
{
"name": "ternific",
"version": "0.9.1"
},
{
"name": "brackets-code-folding",
"version": "0.3.5"
},
{
"name": "mikaeljorhult.brackets-todo",
"version": "0.8.1"
},
{
"name": "davidwaterston.goto-matching-bracket",
"version": "2.1.0"
},
{
"name": "brackets-gitbranch",
"version": "3.0.6"
},
{
"name": "brackets-sort-text",
"version": "0.1.4"
}
],
"bracketsTheme": "rain.monokai-dark-soda"
} I am in the same case as @daaru00, specially about:
I face the freezing behavior with one of our projects in particular : it is our
I have tried setting "findInFiles.instantSearch": false,
"findInFiles.nodeSearch": false, in my I have seen the suggested workaround using extensions to filter/exclude file & So, I chose to downgrade to 1.4. That's too bad that the 1.5 version have this I think the Ultimately, I wish I could easily and completely disable search indexing, NOTE: @daaru00, comparing my installed extensions with yours I noticed that we |
@glepretre Yep, I agree that performance should be a core responsibility. Excluding the files with an extension is just (or should be just) a stop gap workaround to make the program not completely unusable while these issues are getting fixed 🔍 |
We will be addressing parts of the issues for 1.6. Mainly moving code hints to a different process. |
Find in files/ instant search will not significantly affect or block brackets performance with modern machine configurations. We have internally tested instant search scaling well for 1GB+ code bases. File system watching should be the major resource hog after code hint parsing is moved to node. |
I like the concept of black-box. Chrome Developer tools has it. We can start with introducing the behavior like .gitignore ? |
@tallandroid Hehe, Chrome DevTools indeed was my inspiration for the black-boxing concept 😎 |
Well, exclude folders does the trick, but I'd still prefer to be able to see these folders in the file tree blackened out and click on them to bring them alive :) |
When I change project Brackets GUI freeze and CPU usage goes up to 100% for 30s - 45s, is very bothersome. This problem appears after Brackets upgrade.
I using Brackets 1.5 on Linux OS (Linux Mint 17.2 Cinnamon 64-bit).
The text was updated successfully, but these errors were encountered: