{"id":3848,"date":"2024-07-21T17:31:14","date_gmt":"2024-07-21T21:31:14","guid":{"rendered":"https:\/\/www.wholetomato.com\/blog\/?p=3848"},"modified":"2026-02-17T07:28:02","modified_gmt":"2026-02-17T11:28:02","slug":"catching-up-with-va-our-most-recent-performance-updates","status":"publish","type":"post","link":"https:\/\/www.wholetomato.com\/blog\/catching-up-with-va-our-most-recent-performance-updates\/","title":{"rendered":"Catching up with VA: Our most recent performance updates"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Throughout its long lifetime, Visual Assist (VA) has been a top-of-the-line productivity plugin with a performance advantage over Visual Studio and other plugins. Performance and speed has been a bread-and-butter factor for choosing VA\u2014and we\u2019ve doubled down with updates focused on cutting interruptions and load times.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">VA had significant improvements in 2024, particularly in the initial startup time for projects, as well as in the responsiveness of a few key features. It is not farfetched to say that <\/span><b>performance has been the primary consideration for the development direction of the plugin<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Why? Because performant, responsive software is productive software, and fast interaction is key to you getting your work done.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We have a lot of solid, robust features based purely on providing not the kitchen sink, but what you need. We already had a reputation for being faster than other products. Now we are even faster: VA is a <\/span><i><span style=\"font-weight: 400;\">lean, mean, coding machine<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We\u2019re midway through the year, and we\u2019re summarizing all the recent performance updates in this handy update blog. Read on further to get a more complete picture of when and why these changes were introduced to VA.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Faster startup sequence<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Whatever task you have, you first must open and launch Visual Studio\u2014along with any installed plugins you have. Opening a Visual Studio-associated file initiates the <\/span><i><span style=\"font-weight: 400;\">startup process<\/span><\/i><span style=\"font-weight: 400;\"> which starts loading the essential IDE assets, the solution files you have chosen, and ultimately any auxiliary components like Visual Assist.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">While we cannot alter the core loadout of Visual Studio, we\u2019ve worked on every facet of our tool that can be optimized for faster startup:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><b>Project initial parsing<\/b><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Project parsing is an extra step that code assistant plugins like Visual Assist need to undertake. VA uses its own parser independent of Visual Studio\u2019s which allows it to pre-<\/span><i><span style=\"font-weight: 400;\">scan<\/span><\/i><span style=\"font-weight: 400;\"> projects so it can<\/span> <span style=\"font-weight: 400;\">be faster, smarter, and able to provide different functions.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">The release in January 2024 featured an overhaul of the parser, which reduced startup times for opening previously unparsed project files by up to 15 times.<br \/>\n<a href=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3742\" data-permalink=\"https:\/\/www.wholetomato.com\/blog\/visual-assist-2024-1-release-post\/visual-assist-parsing-benchmark-ave-_-visual-studio-2022-17-8-6-_-unreal-engine-5-3-2-lyra-game\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?fit=786%2C482&amp;ssl=1\" data-orig-size=\"786,482\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Visual Assist Parsing Benchmark Ave _ Visual Studio 2022 1786 _ Unreal Engine 532 Lyra Game\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?fit=300%2C184&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?fit=786%2C482&amp;ssl=1\" class=\"alignnone wp-image-3742\" src=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?resize=527%2C323&#038;ssl=1\" alt=\"\" width=\"527\" height=\"323\" srcset=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?w=786&amp;ssl=1 786w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?resize=300%2C184&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?resize=768%2C471&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/01\/Visual-Assist-Parsing-Benchmark-Ave-_-Visual-Studio-2022-1786-_-Unreal-Engine-532-Lyra-Game.png?resize=360%2C221&amp;ssl=1 360w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" data-recalc-dims=\"1\" \/><\/a><br \/>\n<\/span><span style=\"font-weight: 400;\">While <\/span><span style=\"font-weight: 400;\">an initial parse is only done the first time you open a project. The next time you open it, it will be instant. (This was an existing feature.) However, we made it 15x faster for those of you who are opening multiple new projects on a more frequent basis.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, an Unreal Engine project with its typically massive code base previously took 15 minutes to parse. We\u2019ve brought this down to a mere one minute of parsing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tech details: Visual Assist implemented a cache for parsed directories to bypass slow Windows file IO API calls where the same call is expected to give the same result\u2014this <\/span><a href=\"https:\/\/youtu.be\/jJNvTAWJgHs?t=408\"><span style=\"font-weight: 400;\">significantly reduced the initial parse time<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p>&nbsp;<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><b>Plugin load time<br \/>\n<\/b><\/h3>\n<p>This update refers to the time it takes for Visual Assist\u2019s features to become functional. As mentioned above, the time-to-functional is the sum of all <a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/ide\/optimize-visual-studio-startup-time?view=vs-2022\">Visual Studio\u2019s startup routine<\/a> which includes loading in plugins.<span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Every time you close and open a solution, VA\u2019s features take a few moments to load\u2014or at least that\u2019s how it was before. With this update, time-to-functional is more or less instantaneous even in extremely large solutions!\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As soon as Visual Studio calls on Visual Assist to start loading, you\u2019ll immediately see coloring and syntax highlighting, and have access to all navigation and features. (Note: How Visual Studio initializes plugins and components is indeterminate; results may vary slightly depending on how many components it loads first before Visual Assist.)<\/span><\/p>\n<h3><b><i>What these changes mean for you<\/i><\/b><b>:<\/b><\/h3>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Depending on how often you need it, the Visual Studio startup sequence and project load can be a part of your feedback cycle when testing and coding. And even a mere 30 seconds are painful and a <\/span><a href=\"https:\/\/www.wholetomato.com\/blog\/2022\/09\/02\/how-much-time-and-money-does-visual-assist-save\/#:~:text=An%20analysis%20of%20our%20user,effort%20to%20about%2032%20hours.\"><span style=\"font-weight: 400;\">threat to productivity<\/span><\/a><span style=\"font-weight: 400;\"> when repeated, especially when they add up in a work week.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is even more pronounced when your work entails opening new projects multiple times in a week. Visual Assist is the best in-class plugin that offers significantly less startup time\u2014giving you more time to be productive.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">READ: <\/span><a href=\"https:\/\/www.wholetomato.com\/blog\/2024\/03\/28\/visual-assist-2024-2-release-post\/\"><span style=\"font-weight: 400;\">Visual Assist startup duration update<\/span><\/a><\/em><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Search dialogs: Find References and File Finding<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Since starting our crusade against a slow and unresponsive IDE,\u00a0 there have been two updates that shortened the loading time for finding references and symbols. Utilizing techniques such as parallelism and removing extraneous string searches, you\u2019ll\u00a0 enjoy <\/span><a href=\"https:\/\/www.wholetomato.com\/blog\/2024\/05\/02\/visual-assist-2024-3-release-post\/\"><b>up to ten times faster<\/b><\/a> <span style=\"font-weight: 400;\">search time.<\/span> <span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Furthermore, better accuracy and new functionality has been added for other search dialogs, including fuzzy search for Open File in Solution.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><b>Find references speed and responsiveness<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.wholetomato.com\/default.asp?W189\"><i><span style=\"font-weight: 400;\">Find references<\/span><\/i><\/a><span style=\"font-weight: 400;\"> is a feature that looks for symbol usage within the current project or solution. Depending on the project size, there may be hundreds to thousands of symbol definitions in your solution, and many of those, tens of thousands of times they may be used. In order for code navigation to work, VA must scour its database for the correct results.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Find references time increases with the number of symbols in the database. However, VA\u2019s feature has been greatly improved for performance and speed\u2014almost ten times faster than before! That means that this performance improvement applies to many key features and navigations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Some other common and key features in VA improved by this change:\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Renaming finds references in order to rename them.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Implement Methods finds methods in order to know which ones do and do not exist<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Change signature works similarly.<br \/>\n<\/span><\/span><\/p>\n<p><div id=\"attachment_3812\" style=\"width: 504px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?ssl=1\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3812\" data-attachment-id=\"3812\" data-permalink=\"https:\/\/www.wholetomato.com\/blog\/visual-assist-2024-3-release-post\/wt-va-2024-1-va-find-references-window\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?fit=1155%2C1169&amp;ssl=1\" data-orig-size=\"1155,1169\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"WT VA 2024.1 VA Find References Window\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;VIsual Assist&#8217;s Find references window. Takes significantly less time to find all references in 2024.3.&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?fit=296%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?fit=1012%2C1024&amp;ssl=1\" class=\"wp-image-3812 \" src=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?resize=494%2C500&#038;ssl=1\" alt=\"\" width=\"494\" height=\"500\" srcset=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?resize=1012%2C1024&amp;ssl=1 1012w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?resize=296%2C300&amp;ssl=1 296w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?resize=768%2C777&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?resize=360%2C364&amp;ssl=1 360w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/05\/WT-VA-2024.1-VA-Find-References-Window.png?w=1155&amp;ssl=1 1155w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" data-recalc-dims=\"1\" \/><\/a><p id=\"caption-attachment-3812\" class=\"wp-caption-text\">Visual Assist&#8217;s Find references window. Takes significantly less time to find all references in 2024.3.<\/p><\/div><\/li>\n<\/ul>\n<div class=\"mceTemp\"><\/div>\n<ul>\n<li>\n<h3><b>Fuzzy search and uppercase search for opening files and searching symbols<\/b><b><br \/>\n<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Fuzzy search is a technique used in searches and information retrieval to find approximate matches for a given query, accommodating variations like typos and misspellings. It employs string distance metrics to measure the similarity between strings.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Apart from being <\/span><i><span style=\"font-weight: 400;\">fast, Open File in Solution<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">Find Symbol in Solution<\/span><\/i><span style=\"font-weight: 400;\"> support this technique, so you can expect more meaningful results with fewer, less accurate search queries.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Furthermore, beyond fuzzy searching for inexact matches, VA will also match capital letters. For example, if you have a class named <\/span><b>M<\/b><span style=\"font-weight: 400;\">y<\/span><b>C<\/b><span style=\"font-weight: 400;\">lass<\/span><b>N<\/b><span style=\"font-weight: 400;\">ame, searching for \u201cmcn\u201d would find it. Similarly, suppose you have a global variable named <\/span><b>m<\/b><span style=\"font-weight: 400;\">y<\/span><b>G<\/b><span style=\"font-weight: 400;\">lobal<\/span><b>V<\/b><span style=\"font-weight: 400;\">ariable and type \u201cmgv\u201d \u2013 the lowercase \u201cmy\u201d is treated as if it were MyGlobalVariable, providing expected results.<\/span><br \/>\n<a href=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3658\" data-permalink=\"https:\/\/www.wholetomato.com\/blog\/va-2023-6-release\/wt-2023-6-screenshots-fuzzy-search\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?fit=908%2C406&amp;ssl=1\" data-orig-size=\"908,406\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"WT 20236 Screenshots &#8211; Fuzzy Search\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?fit=300%2C134&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?fit=908%2C406&amp;ssl=1\" class=\"alignnone wp-image-3658\" src=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?resize=559%2C250&#038;ssl=1\" alt=\"\" width=\"559\" height=\"250\" srcset=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?w=908&amp;ssl=1 908w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?resize=300%2C134&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?resize=768%2C343&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Fuzzy-Search.png?resize=360%2C161&amp;ssl=1 360w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" data-recalc-dims=\"1\" \/><\/a><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><b>Move Class feature<\/b><b><br \/>\n<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Refactoring and moving entire classes can be a hassle. This feature has completed its beta phase to provide full support for porting an entire class to the file(s) of your choosing.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><b>Bonus QoL Change: Select all items in open file in solution (<\/b><b><i>Ctrl + A<\/i><\/b><b>)<br \/>\n<\/b><\/h3>\n<p>You can now select and highlight multiple files and open them simultaneously when using <i>open file in solution<\/i>. The usual shortcut <i>Ctrl + A<\/i> works.<br \/>\n<a href=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3656\" data-permalink=\"https:\/\/www.wholetomato.com\/blog\/va-2023-6-release\/wt-2023-6-screenshots-share-code\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?fit=1280%2C720&amp;ssl=1\" data-orig-size=\"1280,720\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"WT-20236-Screenshots&#8212;Share-Code\" data-image-description=\"&lt;p&gt;#image_title&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;#image_title&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?fit=300%2C169&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?fit=1024%2C576&amp;ssl=1\" class=\" wp-image-3656\" src=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?resize=501%2C282&#038;ssl=1\" alt=\"\" width=\"501\" height=\"282\" srcset=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?resize=1200%2C675&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/11\/WT-20236-Screenshots-Share-Code.gif?resize=360%2C203&amp;ssl=1 360w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<h3><b><i>What these changes mean for you<\/i><\/b><b>:<\/b><\/h3>\n<p><b><\/b><span style=\"font-weight: 400;\">As a C++ developer, you frequently search for files and symbols in massive projects. So even small reductions in wait times or interruptions cumulatively boost your overall productivity to a significant degree.<\/span><\/li>\n<\/ul>\n<h2><b>Visual Assist Performance FAQs: Faster Startup, Smarter Search, Better C++ Workflow<\/b><\/h2>\n<h3><b>How much faster is Visual Assist in 2024?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Visual Assist introduced major performance optimizations in 2024, including a parser overhaul that made first-time project parsing up to 15x faster. Large C++ solutions now load significantly quicker, especially when opening new projects.<\/span><\/p>\n<h3><b>Why does Visual Assist load large C++ projects faster now?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The updated parser reduces dependency on slow Windows file I\/O calls and uses directory caching. This dramatically cuts initial parsing time, particularly for large enterprise and Unreal Engine solutions.<\/span><\/p>\n<h3><b>Does Visual Assist re-parse my project every time I open it?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">No. A project is parsed only once. After that, cached data ensures subsequent openings are nearly instant, improving overall development workflow speed.<\/span><\/p>\n<h3><b>What improvements were made to Find References performance?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Find References was optimized using parallel processing and reduced string scanning. In many cases, search speed improved by up to 10x, especially in symbol-heavy C++ projects.<\/span><\/p>\n<h3><b>Why does Find Symbol or Open File feel more responsive?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Recent updates improved search indexing and accuracy. Combined with fuzzy search and uppercase matching, results appear faster and require fewer keystrokes.<\/span><\/p>\n<h3><b>What is \u201ctime-to-functional\u201d in Visual Assist?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Time-to-functional refers to how quickly Visual Assist features become usable after Visual Studio launches. In the latest updates, syntax highlighting, navigation, and core features activate almost immediately.<\/span><\/p>\n<h3><b>How do performance updates improve refactoring tools like Rename or Change Signature?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Refactoring features depend on reference searching. Since Find References was optimized, tools like Rename, Implement Methods, and Change Signature now execute much faster in large codebases.<\/span><\/p>\n<h3><b>How does Visual Assist handle extremely large solutions like Unreal Engine?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Visual Assist now caches parsed directories and reduces redundant file operations, allowing massive Unreal Engine projects to parse in a fraction of the time compared to previous versions.<\/span><\/p>\n<h3><b>Can Visual Assist reduce productivity loss caused by IDE lag?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Yes. Even small startup or search delays repeatedly impact productivity. The 2024 performance enhancements reduce wait times, helping developers stay focused and maintain coding flow.<\/span><\/p>\n<h3><b>Why is performance a major focus for Visual Assist?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">As C++ projects grow in size and complexity, responsive tools become essential. Visual Assist continues prioritizing performance improvements to ensure fast navigation, accurate results, and minimal workflow interruption.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Summary<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Performance improvements are and will remain the focus of Visual Assist in upcoming releases. As projects grow larger and C++ features grow in complexity, we too must adapt and scale our performance to meet the increasing workload and demands on our parser and product capabilities.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is our most important aim: <\/span><b>speedy performance and accurate responses <\/b><span style=\"font-weight: 400;\">so you can focus on thinking and problem solving\u2014the crucial parts of coding.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We\u2019re only halfway through the year, so <\/span><a href=\"mailto:support@wholetomato.com\"><span style=\"font-weight: 400;\">let us know what we should improve<\/span><\/a><span style=\"font-weight: 400;\"> upon next. Thank you for your continued use and support of Visual Assist!<\/span><\/p>\n<p><span data-sheets-root=\"1\"><div class=\"actions\">\r\n\t<a href=\"https:\/\/www.wholetomato.com\/downloads?utm_content=blog-\" class=\"button primary\">Try Visual Assist<\/a>\r\n<\/div><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Throughout its long lifetime, Visual Assist (VA) has been a top-of-the-line productivity plugin with a performance advantage over Visual Studio and other plugins. Performance and speed has been a bread-and-butter factor for choosing VA\u2014and we\u2019ve&#8230;<\/p>\n","protected":false},"author":213500340,"featured_media":3851,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[103],"tags":[2426,726359992,1930,726359993,726359994,12004844],"class_list":["post-3848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-c","tag-find","tag-performance","tag-references","tag-symbol","tag-visual-assist"],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2024\/07\/15_WT-Making-the-fastest-version-of-Visual-Studio_1200x480.png?fit=1200%2C480&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfpLS4-104","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/3848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/users\/213500340"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/comments?post=3848"}],"version-history":[{"count":8,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/3848\/revisions"}],"predecessor-version":[{"id":4695,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/3848\/revisions\/4695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/media\/3851"}],"wp:attachment":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/media?parent=3848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/categories?post=3848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/tags?post=3848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}