|T O P I C R E V I E W
||Posted - Aug 25 2021 : 6:37:25 PM
Visual Assist has developed a horrible problem which slows down input responsiveness to a point where VA is more hinderance than help.
The problem is never there after a reboot or logout. But as I use Visual Studio, the problem progresses until typing is an awful experience.
It is easy to verify if it is there by holding down a single key. Right after reboot, characters will appear smoothly. As the problem progresses, the characters will become more and more choppy, until the point where there might be 10-20 seconds of no characters appearing at all! At this point, the only thing to to is log off or reboot the computer. Or, disable VA, which resolves the problem all the time.
I usually have to reboot at least every day because of this. Dismayingly, today after only a couple of hours I had to reboot.
W10, VS 2017, VA 10.9.2393.0
|12 L A T E S T R E P L I E S (Newest First)
||Posted - Nov 09 2021 : 1:20:22 PM
Unless you are actually running out of hard drive space, you should not have any problems with the size of VA's symbol database.
Getting VA to properly understand that you are using Unreal Engine is worth trying, if only since it should help to cut down on the parsing VA does, once VA properly understands that UE is a stable library, even though it is part of your solution.
There is a known limitation in VA, that it won’t correctly pick up the Unreal Engine directory tree if it installed outside of “C:\Program Files\"
to work around this problem can you please create a junction point link to point at the installed engine. So:
Create the directory "C:\Program Files\Epic Games\"
Open a command prompt inside this directory, running as administrator, and run the command:
mklink /J UE_4.26 "C:\UE4\4.26"
Where the second path is the directory where you have installed / placed Unreal Engine. This will create a directory link inside the Windows file system, so while Unreal Engine will appear to exist inside this Program Files sub-directory, is still where it was originally installed.
Now make sure all instances of the IDE are closed, and then go into the directory that holds your game solution. From here you should find in the following files:
Open both files in a text editor, and do a search and replace for the old Unreal Engine path to the new Unreal Engine path, so in this case search
And turn all instances into:
"C:\Program Files\Epic Games\UE_4.26\"
Save the changes and now reload the IDE and your solution.
To avoid having to do this again, if you run the Unreal Engine editor, or Unreal Engine script files via the junction point path then when they update the Visual Studio solution and project files Unreal Engine will use this junction path, rather than the actual physical path that the engine is installed into. So running:
C:\Program Files\Epic Games\UE_4.26\Engine\Binaries\Win64\UE4Editor.exe
C:\Program Files\Epic Games\UE_5.0EA\Engine\Binaries\Win64\UnrealEditor.exe
instead of the Unreal Engine editor via its actual path.
This should get VA's Unreal Engine symbols in italic working reliably and solidly, and may help with some of your problems, if they are tied to solution size, which is quite possible when working with Unreal Engine.
||Posted - Nov 08 2021 : 7:04:43 PM
Yes, I do have "Enable debugger integration required by VA Step Filter for native C/C++" enabled. Though I haven't used that feature on this machine since I installed VAX.
I have never tried using an alternative location for the symbol database. I can try that as well.
It can't be caused by editing code files while debugging - I just had it happen after I ended a debugging session where I didn't make any changes. But does seem to be somehow related to debugging. When this happened today, I had 0 lag. Then I started a debugging session that lasted about 30 minutes, and after I quit debugging and started typing into a code file, typing lag was was there starting with the first character I typed.
I'm not sure what would be considered plenty of space on the drive containing the symbol database. I stay at between 15 and 30 GB free (out of 500GB) on that drive. That seems like plenty for a symbol database, but maybe it's not?
I can send you the database files from when this is happening. It's happening right now, so I made a copy of my entire vax installation folder (as I need to reset the database again to get rid of this typing lag). Which files do you need and what's the best way to get them to you?
We downloaded the unreal engine source from github (or might have been epic's P4) and built the engine ourselves. Our project files live inside the root folder of that UE "installation" (i.e. our project folder is next to an "Engine" folder)
VA was not italicizing the UE symbols, even though that setting is enabled. I actually ended up turning off "Show italics for stable symbols" because VAX started italicizing the plug-in code that I'm working on. My plug-in is in the Engine/Plugins folder, so maybe that's why? (we put it there so it's built in release even if we're building our project in debug) I'm not sure how VAX decides when to italicize UE4 code, but there's definitely something funky going on with that as well - even when I've been working on projects that were not using a custom built engine, italicizing the UE4 code only seems to work for a little while before breaking ("breaking" meaning UE4 code stops being italicized at some point).
||Posted - Oct 21 2021 : 07:28:51 AM
I am just wondering about trying to reproduce this here, using your problem VA symbol database. Would you be able to send me a copy of your symbol database next time this is happening? This would reveal information about the symbols in your project, and their types. I would not expect this to be a problem, but best to point this out up front, just in case it matters.
Are you using a prebuilt version of Unreal Engine from the Epic launcher or have you downloaded and built the Unreal Engine source code from github?
When you are working with Unreal Engine is VA showing the UE symbols in italics? I am also wondering if VA's Unreal Engine support is working correctly for you. If it isn't, getting it working correctly might help slightly with this. Even if it doesn't, it should help with Unreal a little bit.
||Posted - Oct 21 2021 : 07:12:38 AM
Do you have:
VA Options -> Debug Assistance -> Enable debugger integration required by VA Step Filter for native C/C++
turned On or Off? This should be the only thing VA is doing that should care about you editing while debugging. But since your main edit while debugging is editing comments, this doesn't seem like it should have a lot of effect.
I don't see why editing during debugging should trigger this problem, and then require a symbol database rebuild to fix. The fact that the database rebuild is required strongly suggests some form of corruption of the database.
Have you enabled:
VA Options -> Performance -> Use alternative directory for symbol database (requires restart)
Do you have plenty of free space on the drive where VA is storing its symbol database?
Could you please try moving it to somewhere random, like:
to see if the location could somehow be a factor? Or even to a different drive?
||Posted - Oct 20 2021 : 7:15:21 PM
A few more data points:
- typing slow down did not seem to happen in text files (tried in UE4 config files while I was experiencing the typing lag)
- confirmed that typing in a file while debugging seems to trigger it, oddly enough. Something I commonly do is add comments or rename variables as I'm debugging (especially in code that is hard to understand). As I figure out what some piece of code is actually doing, I add a comment but don't try to run edit-n-continue (our project has that turned off). Since my last post, I have avoided making any changes to files while debugging, and I have not had any typing lag whatsoever. Today I tried it - started typing a comment while debugging, and boom, instantly I notice a little bit of lag while typing. I kill the debugging session and typing lag is still there. Rebuild symbol database, restart IDE, and it's gone.
- I have not yet had a chance to try changing plugin indexing to be disabled. :(
I hope that helps.
||Posted - Sep 27 2021 : 05:41:49 AM
I suspect the only effect that changing "Index Plugins" will have is to improve the rebuild speed. If this actually has an effect on this typing speed problem then it will suggest that something in one of the plugins is corrupting our symbol database.
Still, until we have a better sense of what is going on here, probably a useful test when you have the time.
Depending on how spread out the code files in your plugins are, setting:
VA Options -> Projects and Files -> Upon opening a file, parse all other unparsed files in the same directory:
if Solution is not empty = ON
should help, since when you move into an unparsed plugin this will tell VA to parse the rest of the files in that directory. Not perfect, but if it helps it is good.
||Posted - Sep 24 2021 : 1:40:50 PM
I'll check a text file the next time it starts happening - that's a good idea. I have "Index plugins" set to "Referenced". If the text file thing doesn't produce any leads, I will try to change the plugin setting, though that might have to wait as my current task involves working primarily in plug-in code.
||Posted - Sep 24 2021 : 07:13:00 AM
Thank you for the details. Unreal Engine solution size suggests you may be seeing a different trigger to tjcbs, but this still should not be happening.
The fact that restarting the IDE does not help is interesting, and a bit disturbing. It also largely rules out memory leak problems, but does not totally disprove a leak of some sort. The fact that rebuilding VA's symbol database does help is down right worrying.
The test profile is designed to test your general environment, mainly any other plugins and possible corruption in the IDE profile. Given what you are seeing I am not sure this would actually help.
When you see the problem, can you try opening / creating text (.txt) file, also a new file that only contains comments, and see if you still see the same problem there? I am trying to seperate out editing and scrolling from anything that VA should need to check its symbol database for. Editing and producing listboxes will obviously require symbol database lookups, but simply scrolling a code file will require some, for checking symbol colours.
So I am wondering what happens in a text file, or a code file with only comments. The idea is to still have VA enabled, but have it "ignore" the current file, and see if this has any effect.
For Unreal Engine its self, does setting:
VA Options -> Unreal Engine -> Index plugins (requires restart) = None / Referenced
make much difference? If you can set it to None this should help quite a bit, but obviously might skip to much code to be that helpful.
||Posted - Sep 23 2021 : 12:47:47 PM
For what it's worth, my whole studio has the same issue (input lag after a while). Affects typing, scrolling through the file, everything. You can restart VS, close & reopen the solution, doesn't matter. Input lag would still be there.
Originally, I didn't think it was VAX because the input lag still exists if you disable VAX, so I tried disabling everything else (extensions, settings) that seemed remotely related to scanning/parsing the text, to no avail. But if I tell VAX to rebuild the symbol database and restart VS, the input lag is completely gone...for a while. I've not tried rebooting/relogging - next time it happens I might try that instead, as that would be faster than waiting for VAX to reparse a UE4 solution, heh.
I haven't tried the default profile thing, but would this still be relevant if many people at our studio are having the same issue? It seems unlikely that we would all have some kind of issue in our profile, right?
I'm not 100% sure, but one potential repro is to make changes to a file while you're debugging a c++ project. A couple times I've started to notice the input lag has been after doing that. In my case, the project does not have edit-and-continue enabled, and I have intellsense completely disabled (it's a UE4 project, for what it's worth). After I make the edit, the next time I step, there is a few seconds delay then it pops up the dialog asking if I want to edit/revert/ignore the changes, then I notice input lag.
I hope these additional clues help you guys narrow it down!
||Posted - Aug 31 2021 : 07:58:18 AM
Remember keyboard input needs to be "shared" with the IDE, since we are both interested in what you type. But this is a very strange problem to have.
This is a tiny solution, so obviously this isn't a size problem.
Which language, or languages, are you working in?
Can you please close all instances of the IDE and then run the command:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe" /RootSuffix VATest
this will create and load a new, default profile for Visual Studio, so you will be asked which basic settings you want to use, and you should only have the standard, default IDE extensions installed. Visual Assist will not be installed into this profile, so you will need to go into the dialog:
IDE tools menu -> Extensions and Updates...
and install Visual Assist from the online extension store, to install VA for this test profile.
To load your normal, default profile just load the IDE normally. To return to this test profile again, pass the /RootSuffix command line switch when loading the IDE. You can run both profiles at the same time, next to each other, but this can get confusing, so be careful. If you export your IDE settings from your main profile you can them import them into the test profile.
Can you please see if you get the same problem in the test profile? My first guess is either an interaction problem with another extension, or a problem in your default profile, both of which would be "fixed" by the test profile.
If this doesn't help can you please try running Windows "Performance Monitor", and see what you see? Is the IDE having problems with the CPU, memory, hard drive, network?
||Posted - Aug 30 2021 : 9:46:02 PM
I'm using VS2017
Only 283 files
I checked task manager, nowhere near the limit.
I guess the only thing to do is to try VS2019?
So Visual Assist runs on the same thread as keyboard input? Is it technically possible to decouple it? Any plans to do so?
||Posted - Aug 26 2021 : 04:22:08 AM
Apologies for this problem, clearly this should not be happening.
Can I just double check you are using VS2017 and not VS2019? I ask because a problem that could cause what you are seeing has just been fixed in the latest update to VS2019, so it's best to make sure.
How many files do you have in your solution?
If you open VA's Open File in Solution dialog (Alt-Shift-O) the title bar contains two numbers. The first number is the number of files currently listed, which changes as you filter the list. The second number is the total number of files in the list, which is normally the number of files in your solution. What is this second number?
When you start noticing this problem can you please open Windows Task Manager and check on the memory usage of Visual Studio. It's possible you are running close to the 3gb memory limit of a 32bit process, which could also explain the problem.