T O P I C R E V I E W |
kcbanner |
Posted - Jun 21 2024 : 5:41:13 PM In the latest version of VA_X, I'm seeing extremely slow search performance. This is a typical Unreal Engine project.
For example, a typical search that would complete almost instantly will sometimes take upwards of 10 minutes to complete. During this time, the text "VA: Creating instance of template" appears with thousands of different type names, most of which don't really make sense together.
During this time, the "Stop" button is unresponsive. Clicking it can take upwards of 30 seconds to stop the search. This is very frustrating and I usually end up toggling to a different tool to simply grep the codebase.
Version info:
VA_X.dll file version 10.9.2522.0 built 2024.05.31 DevEnv.exe version 16.11.32228.343 Community
|
15 L A T E S T R E P L I E S (Newest First) |
feline |
Posted - Jul 01 2024 : 07:30:52 AM The change logs will be along soon, but I do know one fix was made to template handling, which was causing performance problems and even sometimes crashes when running Find References. The crash problem was only reproduced in older versions of Unreal Engine, but performance problems were showing up elsewhere. When fixing an urgent bug we don't want to wait for the change log, preferring to get the fix released. |
dezmen |
Posted - Jun 28 2024 : 11:54:29 AM quote: Originally posted by feline
It turns out VA 2528 has just been released, which contains the bug fix. Hopefully downloading and installing this version will fix the problem for you:
http://www.wholetomato.com/downloads
Any change logs? Lately when I see new version, i can't find any change log to decide update or not, can be up to month of waiting :/ |
feline |
Posted - Jun 27 2024 : 08:52:20 AM Excellent news, thank you for the update, fingers crossed this issue is fully fixed. |
kcbanner |
Posted - Jun 26 2024 : 3:08:53 PM I've just upgraded to 2528 and it seems good so far. I will update here if the issue comes back. Thanks! |
feline |
Posted - Jun 26 2024 : 12:34:55 PM It turns out VA 2528 has just been released, which contains the bug fix. Hopefully downloading and installing this version will fix the problem for you:
http://www.wholetomato.com/downloads |
kcbanner |
Posted - Jun 26 2024 : 10:47:13 AM Sounds good, thanks! |
feline |
Posted - Jun 26 2024 : 06:57:51 AM Thank you for checking this. This does suggest that you were seeing the same problem, just not quite so seriously. The original bug report was that Find References was crashing the IDE. The only upside is that it was only showing up on older, and hopefully less widely used, versions of Unreal Engine. We have a fix for this internally, and it should be part of the next release. |
kcbanner |
Posted - Jun 25 2024 : 5:52:48 PM I've just tried 2515, and search performance seems back to normal now - I haven't seen the template instance issue - I'll keep you posted if it occurs on this version. Thanks! |
feline |
Posted - Jun 25 2024 : 07:50:09 AM The UE version is interesting, and might be a clue, along with the fact that this seems to be related to templates.
There is a regression with Find References in VA 2520, which so far I have only been able to reproduce reliably in UE 4.20, but not in UE 4.27 or UE 5.x, but I didn't check versions between 4.20 and 4.27. So you could be running into a version of this bug:
case=164595
Can you please try uninstalling VA, which can be done via:
IDE Extensions menu -> Manage Extensions
and then installing VA 2515, which doesn't have this regression, to see if this fixes the problem:
https://www.wholetomato.com/downloads/getBuild?2515
If this does help then this will suggest you are seeing the same problem. |
kcbanner |
Posted - Jun 24 2024 : 3:32:56 PM One more piece of information. The text displayed in the instance template message doesn't make sense sometimes, maybe this is a hint at what's going on:
`VA: Creating instance of template :FMath:IsPowerOfTwo<int32> rererereteFlagteFlagteFlagteFlagteFlagteFlagte`
Hundreds / thousands of these kinds of messages flash by when this is happening. This specific case occurred when using find references on a parameter of a method, inside the cpp file. FMath::IsPowerOfTwo was not referenced in this method. Searching for the references of the method parameter of this ~100 lines method took 20+ seconds. Subsequent searches were still slow. |
kcbanner |
Posted - Jun 24 2024 : 2:29:18 PM To answer your question about a specific UE symbol, I just opened Texture.h and searched while my cursor was on the `TextureCompressionSettings` in `enum TextureCompressionSettings` and experienced the slow behaviour. I then searched again and it was fast.
It seems to me like VA is deciding to re-index or re-build some kind of data structure (assuming this is what creating instance of template means). It then seems that somehow whatever data structure it builds doing this is deleted / removed from the cache, because searches for that same symbol will exhibit the "rebuild" behaviour at a later time. |
kcbanner |
Posted - Jun 24 2024 : 2:26:19 PM I'm using UE 4.24.3 in this case.
The behaviour does not happen consistently with symbol types.
For example consider this pseudo-code (not UE code, just code in our project):
for (FExampleStruct& Info : Infos)
{
if (Info != Foo && Info != Bar)
{
SelectedInfo = Info;
}
}
The problem can occur on `SelectedInfo` (member variable) and `Info` (local variable). I've also seen it occur on enum values as well, for example on an enum literal right after the `case` in a switch statement.
The reason I saw "can" occur is that it's not consistent. I could search with my cursor on `Info` above and it will complete instantly. Then I can hit the keyboard shortcut again, and it will (seemingly randomly) start doing the "Creating instance of template" status bar spam behaviour, and become unresponsive.
I could then switch to say `Infos` and it would be very slow (creating instance of template), and then repeat the same search and have it complete instantly.
If you "prime" it by searching repeatedly on the same symbol multiple times, it can get into a state where the bug stops happening. Switching symbols can then trigger it to start happening again.
|
feline |
Posted - Jun 24 2024 : 07:17:42 AM electr what are you doing? Since you are disabling VA you cannot be doing a VA Find References search, so are you instead doing an IDE find in files?
Does simply turning off VA via:
VAssistX -> Enable/Disable Visual Assist X
make any difference? |
feline |
Posted - Jun 24 2024 : 07:16:14 AM kcbanner which version of Unreal Engine are you using? Sometimes this matters.
Are you seeing this problem with Find References searches on all symbols, or only some symbols? I would assume this problem only shows up on some symbols, but not others. For example running Find References on a local variable of a simple type will hopefully return results instantly. Are you seeing this with symbols from inside UE its self? Or is it only happening with symbols defined in your project?
Can you give me some example symbols from UE that show the problem for you, so I can run some tests here? |
electr |
Posted - Jun 22 2024 : 12:12:52 AM "I am using VS2019 C++ and am experiencing the same issue. When I disable Visual Assist in Extensions and then perform a search, there are no problems." |