Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 VA parsing when Building
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - Apr 29 2013 :  03:26:17 AM  Show Profile  Reply with Quote
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

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 29 2013 :  04:48:09 AM  Show Profile  Reply with Quote
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.
Go to Top of Page

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - Apr 29 2013 :  10:28:08 AM  Show Profile  Reply with Quote
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
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 29 2013 :  6:42:36 PM  Show Profile  Reply with Quote
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?
Go to Top of Page

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - Apr 30 2013 :  02:54:07 AM  Show Profile  Reply with Quote
I turned it off because it seems to parse all files every time i open the solution.
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 30 2013 :  09:29:38 AM  Show Profile  Reply with Quote
*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.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Apr 30 2013 :  11:47:56 AM  Show Profile  Reply with Quote
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)?
Go to Top of Page

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - May 01 2013 :  02:56:00 AM  Show Profile  Reply with Quote
@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?
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - May 01 2013 :  5:52:38 PM  Show Profile  Reply with Quote
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?

Edited by - accord on May 01 2013 5:58:26 PM
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - May 02 2013 :  7:54:11 PM  Show Profile  Reply with Quote
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.
Go to Top of Page

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - May 08 2013 :  02:31:49 AM  Show Profile  Reply with Quote
@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.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - May 08 2013 :  12:12:04 PM  Show Profile  Reply with Quote
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.
Go to Top of Page

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - May 15 2013 :  02:14:33 AM  Show Profile  Reply with Quote
"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.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - May 15 2013 :  10:56:24 AM  Show Profile  Reply with Quote
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
Go to Top of Page

Kaylx
Junior Member

United Kingdom
23 Posts

Posted - May 23 2013 :  03:26:42 AM  Show Profile  Reply with Quote
Is there a list of all the files types that VA can parse anywhere?
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - May 23 2013 :  11:08:37 AM  Show Profile  Reply with Quote
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 ).
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19025 Posts

Posted - May 23 2013 :  11:23:08 AM  Show Profile  Reply with Quote
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.

zen is the art of being at one with the two'ness
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - May 23 2013 :  11:38:22 AM  Show Profile  Reply with Quote
^
Better answer from feline.

Edited by - sean on May 23 2013 11:38:52 AM
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000