Author |
Topic |
KRG
Senior Member
USA
35 Posts |
Posted - Apr 03 2021 : 11:45:18 AM
|
So it seems with the latest VS update, the find and replace all in a single file is unbearable slow due to VAX. Disabling VAX bring performance back to what is expected.
Repro is simply, just open a largish code file, hit ctrl-h and try replace all occurrences of some text.
I took a quick profile and this is what I'm seeing:
Thousands of calls to: WholeTomatoSoftware.VisualAssist.NavBar.VaCodeWindowMargin.OnWindowPositionChanged - each taking 1ms
I would upload a screenshot from the profile capture but I cant seem to upload images to this forum.
Can you please fix this?
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Apr 06 2021 : 07:30:42 AM
|
Which version of VA are you using?
Which programming language are you working in? More specifically, are you using .NET?
How large a file do you mean by large?
I have just tested this here, in a LARGE .cpp file, 23,000 lines long, 905 occurrences were replaced with Ctrl-H, it took a about 1 second.
This is with VS2019 version 16.9.2 and VA 2399. I am looking for the VS2019 update now, to see if this makes any difference to the speed. |
zen is the art of being at one with the two'ness |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Apr 06 2021 : 07:47:46 AM
|
I have just updated to VS2019 version 16.9.3, and no difference in speed. If anything, the Ctrl-H find and replace was actually a bit faster.
I have seen several recent reports of performance problems with the latest versions of VS2019, clearly related to VA, so something is going on here, but so far I have not been able to reproduce them here, or pin down what is going on.
One user has reported that turning Off IDE code analysis fixed a lot of their performance problems, but this seems to be a .NET specific setting:
https://docs.microsoft.com/en-us/visualstudio/code-quality/disable-code-analysis?view=vs-2019 |
zen is the art of being at one with the two'ness |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Apr 06 2021 : 7:52:56 PM
|
I'm working in C++ with 16.9.3... I have a profile with a capture clearly highlighting VAX is the issue. This happens even in small files with only a dozen lines of code.
There are literally non-stop calls to WholeTomatoSoftware.VisualAssist.NavBar.VaCodeWindowMargin.OnWindowPositionChanged for 30+ seconds, each one take upwards of a 1ms. I can send screenshots of the capture to your support email if that would help.
It's only with 16.9.3, it was fine before.
Actually I have a screenshot in a tweet: https://twitter.com/Bobby_Anguelov/status/1378373896311816194?s=20
|
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Apr 07 2021 : 07:13:30 AM
|
Other people have also confirmed that disabling VA fixes the performance problem they are seeing, but so far we don't understand what is causing these problems.
Clearly file size isn't a factor, which is odd.
Can you please try making a new, default solution, and see if you get the same problem there? I suspect you will, but sometimes problems are solution specific, so I just want to check this.
As a second test, can you please go to:
IDE Extensions menu -> Manage Extensions
and locate Visual Assist in your list of installed extensions. Select Visual Assist and disable it. This will require an IDE restart to take effect. After the restart, please return to this dialog and Enable Visual Assist again. Sometimes when installing an IDE update there can be problems with extensions, and this normally fixes any problems, so it might help here.
If this doesn't help can you please close all instances of the IDE and then run the command:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\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 Extensions menu -> Manage Extensions
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. In VS2019 the profile name will be shown just under the close button, in the top right hand corner of the main IDE window. If you export your IDE settings from your main profile you can them import them into the test profile.
Does loading your solution in the test profile have any effect on this performance problem? I am hoping it will fix the problem, so at least we know that the trigger is something profile specific. |
zen is the art of being at one with the two'ness |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Apr 07 2021 : 09:48:10 AM
|
I will try that.
Did you look at the profile screenshot at all? VAX seems to think that while the modal dialog box is open, VAX thinks the layout is constantly changing so is recreating its nav windows. Maybe this is due to some change in VS with the latest update but most of the time is spent recreating the VAX windows. I'm doubtful that my profile settings will affect that, but I'll give it a try anyways.
I've already disabled and re-enabled VAX via the extension menu to no effect. Will try with the test profile now... |
|
|
ChrisG
Whole Tomato Software
USA
299 Posts |
Posted - Apr 07 2021 : 09:50:54 AM
|
This may sound like an odd question, but do you have a greater than 60hz refresh rate monitor? |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Apr 07 2021 : 2:38:54 PM
|
Yeh, I do actually, a 165hz one...
hahaha, I think can see where this is going and what would be hilarious if its the cause...
|
|
|
ChrisG
Whole Tomato Software
USA
299 Posts |
Posted - Apr 07 2021 : 6:57:15 PM
|
It's only a hunch but it could be related. Could you please try and reproduce with a 60hz refresh rate? Windows should allow you to manually set a refresh rate in the advanced display settings. |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Apr 07 2021 : 8:54:30 PM
|
That's exactly the issue, at 60hz it's as expected (~1s) at 165hz it takes up to a minute. Hope that helps to get it fixed. |
|
|
ChrisG
Whole Tomato Software
USA
299 Posts |
Posted - Apr 07 2021 : 8:55:16 PM
|
It does. It will help us reproduce the problem. Thank you, KRG. |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Dec 12 2021 : 7:31:07 PM
|
Hey, bumping this thread as the issue is back in VS2022. Except now it's also affecting the search functionality. Disabling VAX results in near instant replace in files and text searches through large solutions. Enabling VAX results in massive delays in all operations and hangs.
4+ seconds to replace a bit of text in a 300 line file... Text search is horrifically slow with VAX enable, to the point I'm now having to use VSCode to search since I dont have 30seconds per search... |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Dec 14 2021 : 09:36:33 AM
|
As a first test, can you simply try disabling VA via:
VAssistX -> Enable/Disable Visual Assist X
to see if this stops the slow down? VA colouring could be a factor here, if so, this should stop the problem. But that doesn't explain why you are seeing this and I am not. I suspect there is an interaction between VA and something else going on here, but the trick will be finding that something else. |
zen is the art of being at one with the two'ness |
|
|
ChrisG
Whole Tomato Software
USA
299 Posts |
Posted - Dec 15 2021 : 12:40:48 AM
|
Sorry you seem to be experiencing this issue again.
Please try disabling the VA Navigation bar by unchecking Extensions > VAssistX > Visual Assist Options > Display > Display VA Navigation Bar. Does that improve the speed?
What build of VA are you using? You can check by navigating to Help > About in the VAssistX menu. |
|
|
ChrisG
Whole Tomato Software
USA
299 Posts |
Posted - Dec 15 2021 : 01:06:22 AM
|
Please also try updating your copy of VS2022 to 17.0.3. Does that help with the issue? It's a recent release. |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Dec 15 2021 : 7:02:36 PM
|
Disabling VAX fixes the issue.
I will try to disable the navigation bar and see if that resolves it.
I was running the latest VAX and VS at the time of writing, but I'll upgrade to the last VS and see if I can repro. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Dec 16 2021 : 07:24:56 AM
|
When you say disabling, how are you disabling VA? Via the menu entry:
VAssistX -> Enable/Disable Visual Assist X
or via the extension manager dialog, which requires an IDE restart? The extension manager dialog is a rather more complete disabling. If just doing so via the menu entry then disabling the navigation bar will be an interesting test.
A random thought, do you have a high refresh monitor? |
zen is the art of being at one with the two'ness |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Dec 16 2021 : 09:19:41 AM
|
I'm disabling via the menu entry. And yes as stated earlier in the thread I have a 165hz monitor which was the original cause of this issue in VS2019.
So with the latest VS update the issue seems to have been resolved (its still a bit slower with VAX running but its not as noticeable - 3s vs 2.5s for a search in UE5). I'll keep an eye on it. |
|
|
ChrisG
Whole Tomato Software
USA
299 Posts |
Posted - Dec 16 2021 : 09:38:03 AM
|
Thanks for reporting back. A few of us here a Whole Tomato have high refresh rate monitors and we will continue monitoring for potential issues. |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Aug 06 2022 : 1:48:03 PM
|
Hi, so this issue is back with the latest VS2022 (17.2)
With VAX enabled, find and replace is instant but it takes several seconds for the dialog box finalizing the operation to appear. If you hit escape during that time it will cancel the operation. When disabling VAX, everything works as expected.
Once again I do have a high refresh rate monitor which are really common these days (especially for those working in game dev).
Could you perhaps add this issue to your tests so that it doesn't keep popping back? |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Aug 08 2022 : 07:17:53 AM
|
Are you able to try altering your monitor refresh rate to see if this is actually a factor? It is possible something else is triggering this problem for you this time. |
zen is the art of being at one with the two'ness |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Aug 08 2022 : 3:20:39 PM
|
It is the refresh issue once again. Setting it to 60 resolves it. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Aug 09 2022 : 05:36:35 AM
|
Thank you for checking this. I don't personally have a high refresh rate monitor, so I cannot test this directly, which is unhelpful. Can you please try turning Off
VA Options -> Display -> Display VA Navigation Bar:
and see if this fixes the problem while you have the high refresh rate? This was part of the problem last time, which is covered by:
case=142298
so I wanted to see if this was caused by the same trigger, to know if I should re-open this bug report or raise a new bug report for this. |
zen is the art of being at one with the two'ness |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Aug 09 2022 : 2:10:55 PM
|
Yup, it's the navigation bar that's causing it!
Seems it really is the same as before. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Aug 10 2022 : 05:40:18 AM
|
Thank you for confirming that, definitely the same problem, I have re-opened the bug report:
case=142298 |
zen is the art of being at one with the two'ness |
|
|
superzmy
Junior Member
China
20 Posts |
Posted - Sep 10 2022 : 12:46:24 AM
|
It seems that when there are multi tags and split windows, "ctrl h(quick replace)" and "ctrl shift f(both search and replace)" are slow down according to the count ( when vax navi bar is visible ). |
Edited by - superzmy on Sep 10 2022 01:02:17 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Sep 12 2022 : 05:53:27 AM
|
So far we have not been able to reproduce this here. superzmy, which version of VA and the IDE are you using?
Do you have any other extensions installed, or are you running any utilities that might effect how the screen is being updated? I am just wondering if there is something else that is required to trigger this along side VA. |
zen is the art of being at one with the two'ness |
|
|
superzmy
Junior Member
China
20 Posts |
Posted - Sep 17 2022 : 04:39:35 AM
|
vs2019 Viasfora VisualGDB But in my mind, Slowing down had happend before I install these plugin last year. |
|
|
superzmy
Junior Member
China
20 Posts |
Posted - Sep 17 2022 : 04:44:48 AM
|
if we cant solve this problem. Please give us a shortcut key or a icon button to hide and reopen the navibar. |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Sep 19 2022 : 12:38:28 PM
|
It is possible you saw the problem with an older version of VA. This was definitely a bug that we were able to reproduce and fixed, but since I don't have a high refresh rate monitor I cannot directly test this myself.
For a keyboard shortcut, you can map a keyboard shortcut to the command:
VAssistX.EnableDisable
not quite the same, but it should help a bit.
Since you are using VS2019 can you please try closing all open instances of the IDE and then running the command:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\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 Extensions menu -> Manage Extensions
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. In VS2019 and VS2022 the profile name will be shown just under the close button, in the top right hand corner of the main IDE window. If you export your IDE settings from your main profile you can them import them into the test profile.
Do you still see this problem in the test profile, or is it fixed? Are any of your other extensions showing up in the test profile? This doesn't normally happen, but it is possible. |
zen is the art of being at one with the two'ness |
|
|
KRG
Senior Member
USA
35 Posts |
Posted - Nov 16 2022 : 10:35:33 AM
|
Any update on this? It's been over 4 months and it's still an issue. |
|
|
Topic |
|