T O P I C R E V I E W |
Kaylx |
Posted - Apr 29 2013 : 03:26:17 AM Hey,
Is there any way to stop Visual Assist from parsing files when i'm building a solution or project? It's impacting my build time a lot (and it's bad enough). :(
Kaylx |
17 L A T E S T R E P L I E S (Newest First) |
sean |
Posted - May 23 2013 : 11:38:22 AM ^ Better answer from feline.
|
feline |
Posted - May 23 2013 : 11:23:08 AM If you run regedit and look in:
HKEY_CURRENT_USER\\Software\\Whole Tomato\\Visual Assist X\\VANet10\ you will see a set of values all starting with "Ext", for example "ExtAsp", "ExtSource", "ExtCS". These list extensions VA has been explicitly told about, so might offer some clues. Note that VA does not automatically parse every extension here, the binary extensions are not parsed as code. |
sean |
Posted - May 23 2013 : 11:08:37 AM No, there's no canonical list since if you tell VS and VA that a particular file type is, for example, supposed to be parsed as C++, then it will treat that file type as C++ and will parse it ( http://docs.wholetomato.com?W328 ). |
Kaylx |
Posted - May 23 2013 : 03:26:42 AM Is there a list of all the files types that VA can parse anywhere? |
sean |
Posted - May 15 2013 : 10:56:24 AM The next time it happens, enable logging and send in the generated va.log file. Maybe it will give some indication as to what is happening.
http://docs.wholetomato.com?W305
|
Kaylx |
Posted - May 15 2013 : 02:14:33 AM "Does your build have any custom steps that either modify the projects in the solution or cause a source control sync?" - No
I've also already got 'MaxConcurrency' set to 3 out of 4 cores. |
sean |
Posted - May 08 2013 : 12:12:04 PM There's nothing special about the build process that causes VA to parse files, so we need to look at things your build process does to identify why starting a build causes "VA X: parsing" messages to appear in the status bar.
Does your build have any custom steps that either modify the projects in the solution or cause a source control sync?
While you can't disable parsing while a build is running (since we don't even pay attention to build states), you can restrict the number of logical cores that our parsers use.
Create DWORD reg value named "MaxConcurrency" at HKCU\\Software\\Whole Tomato . Note this location is different from the IDE-specific registry customization locations. Set the value to the maximum number of logical cores that the parallel parse algorithms are allowed to use. Delete the value to restore default behavior. The value is only read once when VS is started.
|
Kaylx |
Posted - May 08 2013 : 02:31:49 AM @accord - i've deleted the folders, i'll let you know how it goes. VA does start parsing though while builds are in progress. I can hit build then touch nothing, just watch the screen and i'll get the 'VA X: Parsing...' status bar message. It definitely seems triggered by the build. As for the sync'n up to files with VS opened or closed, i do both lol.
@sean - i've tried having the 'watch for externally modified files' option on and off before and haven't noticed any real difference in behavior. |
sean |
Posted - May 02 2013 : 7:54:11 PM Does changing the value of "Watch for externally modified files and reparse when necessary" from ON to OFF result in different behavior? Since you have a solution and projects, having that enabled shouldn't gain you anything unless you sync to source control while the solution is loaded.
|
accord |
Posted - May 01 2013 : 5:52:38 PM vs10 and vs10_1 folders are fine. You can try deleting them while no Visual Studio instance is running, just for a fresh start. So does Visual Assist still reparse the files after you rebuild the database as per my previous post or after deleting the above mentioned folders?
Basically, VA checks the file modification date, like the compiler. But VA doesn't start parsing because you start compiling, does it? It "just" happens to be parsing while you start compiling and doesn't stop. Am I right? Do you exit from Visual Studio, or close the solution before you update (download) files from a version control? Or the solution is open while the version control modifies the files? |
Kaylx |
Posted - May 01 2013 : 02:56:00 AM @accord Yeh it's a normal directory with write permissions. Path: ...\\AppData\\Local\\Microsoft\\VisualStudio\\10.0\\Extensions\\Whole Tomato Software\\Visual Assist X\\10.7.1936.0\\Data I did notice under the Data folder i have an empty vs10 folder and another one called vs10_1 with all the files in it. Don't know if that's an issue. Also my Startup.log mentions: EDL::166 5/1/2013 08:20:35 0x77c EDL::173 5/1/2013 08:20:37 0x77c EDL::342 5/1/2013 08:20:37 0x77c
I will try changing the directory later.
@sean No files are generated. Sometimes i will just open a solution then hit clean and rebuild (usually on a monday when i sync up to source control), but in general the solution's already been open a while before i do a build. It doesn't always decide to parse files when building, but it's more often than not. And yes in the status bar it mentions 'VA X: Parsing file....'.
How does VA check for file modifications once it's built the database(s)? Could it be my defrag program, anti-virus or 'SearchIndexer.exe' touching the files that would cause VA to think files have changed when they haven't? One last thing, i can be working on several branches of the code during the day (release, main, development). Obviously the code across branches is virtually identical except for the parts being actively developed. Does VA handle situations like that? |
sean |
Posted - Apr 30 2013 : 11:47:56 AM Unless your solution generates source files, building the solution should not cause VA to parse anything.
Is it parsing because you just opened the solution - to build it?
Does "VA X:" appear in the status bar (just to confirm that it is VA using the CPU)? |
accord |
Posted - Apr 30 2013 : 09:29:38 AM *ah* It makes sense then However, this should not happen and I can imagine that it can be annoying especially if it slows down compilation.
Can you please take a look at the following page? http://docs.wholetomato.com?W332
It describes where VA stores its databases and how to change this location. 1. Can you please check this directory? Does it have write permissions? Is it a "normal" directory? (non-network or virtual, etc.) 2. Can you please try enabling this above mentioned setting (Parse all files) and try to rebuild your symbol databases?
VA Options -> Performance -> Rebuild
You can do it before lunch or something. :) It should take a few minutes, and if you close and reopen the solution after the parsing is done, it should just reload the database which takes seconds. |
Kaylx |
Posted - Apr 30 2013 : 02:54:07 AM I turned it off because it seems to parse all files every time i open the solution. |
accord |
Posted - Apr 29 2013 : 6:42:36 PM Can you please try turning "Parse all files when opening a project" on? Or do you have a reason to keep it off? 8567 files should be parsed relatively quickly (few minutes) and only done once since the database is saved, so next time you open a solution the database is loaded, and only changed files are parsed which should be done in seconds, after an update from a version control.
Does it make sense? |
Kaylx |
Posted - Apr 29 2013 : 10:28:08 AM The solution contains 106 projects with 8567 files. My Visual Assist Performance options are as follows: Keep symbols in memory for fast response after Alt+Tab - ON Watch for externally modified files and reparse when necessary - ON Parse all files when opening a project - OFF |
accord |
Posted - Apr 29 2013 : 04:48:09 AM First, I would like to understand how this problem happens. Visual Assist should only parse the solution once, quickly, and it saves the database. After that, all your changes should be done in a sec or two: unlike the compiler Visual Assist parses only changes files. Even updates from a version control program should not take longer than a few seconds, unless you have thousands of changed files or more. Are you working on a large solution? How many files your solution have? If you press alt+shift+o, the number is shown in the titlebar of the dialog. |