GoingNative 29: Massive Improvements for Browsing in Large Codebases!

Download this episode

Download Video


Some of you out there, especially those of you who frequently work with large codebases, might have seen this prompt at times while performing a basic browsing operation like Go To Definition or Find All References:

Generic Episode Image

This prompt blocks you from performing those operations, sometimes for more than 5 minutes!

Well, with today's release of Visual Studio 2013 Update 4 CTP 1 (clicky clicky!) you can enjoy huge improvements to this workflow! Join today's [implicit] quartet of Visual C++ folks as we finally reveal the secret behind this super-annoying prompt that blocks you from doing basic browsing operations. We'll show you not only what we did, but also how we went about making these improvements. Use the tips for your own projects; improve away!

Click here to download Visual Studio 2013 Update 4 CTP 1 for the solution scanning improvements!
Check back here for a future "Update 4 update" with the final unblocking touches!



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      Ricardo Costa

      Nice improvement! Have you also tried changing the std::map structure to std::unordered_map? It's free to replace one with another and it usually provides great performance improvements to the find operation as it uses a hash table instead of a tree.

    • User profile image

      Just a funny little note but instead of doing loops in comparison you could do std::lexicographical_compare with reverse iterators.

    • User profile image

      The popping yellow bar is going to be very annoying because it moves the text in the editor down and then up again when it disappears. Work it out e.g. by moving the bar to the bottom of the editor or by positioning it over the editor window and it's going to be very useful update. After this I might even consider to use VS without buying Visual Assist first.

    • User profile image
      Vytautas Leonavius


      Thanks for the suggestion. We actually experimented with std::unordered_map vs std::map for this scenario. However, we did not found consistent or significant improvement across various solutions we tried. The difference was within measurement noise, so we decided to stay with std::map.

      Vytautas/Visual C++ IDE

    • User profile image

      Why even use a string as the key for the map?
      CRC32 of the path is what I would use.
      Also, there are much better maps than std::map, see the judy array or google sparse hash.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to send us feedback you can Contact Us.