GithubHelp home page GithubHelp logo

Comments (8)

sean-mcmanus avatar sean-mcmanus commented on June 17, 2024 2

@kitswas Yes, it's stuck populating the file name cache. This is a performance issue we've are aware of and I believe another member on our team is actively working on fixing that (unless I'm mistaken). One prior bug is #11954 , although that doesn't mention IntelliSense being blocked, so we can use this issue to track the IntelliSense case.

Well, that's for the 15 sec, but the 10 sec updating time might be improvied via #3628 or #5362 or other performance work that is in progress.

from vscode-cpptools.

bobbrow avatar bobbrow commented on June 17, 2024 1

@kitswas I just tried cloning your project and configured with CMake on Windows. Is there a particular file that you are having problems with? I wasn't able to repro a performance problem with the few files I tried.

ns-3-dev.mp4

This is on a local machine though. You seem to indicate that you're connecting to a remote machine? It's not WSL, is it? Can you share more details about your remote setup? Our extension doesn't manage communication back and forth between machines, but it's possible that something is configured sub-optimally that is resulting in delays. It looked like there were only about 3300 source/header files in this repo and our extension can normally handle a project of that size ok.

@trustytrojan We feel your pain and have been experimenting with alternate approaches to deal with the performance issues you are referring to. These efforts have not yielded the wholesale improvements we're looking for yet, but we have been scaling up the investment here and hope to announce more improvements in the future. Our most recent improvements were released in version 1.19 (progressive IntelliSense updates, and a rewrite of the symbol search feature).

from vscode-cpptools.

trustytrojan avatar trustytrojan commented on June 17, 2024

IMHO, it doesn't seem like performance is this extension's priority, because there are a ton of issues titled similarly to this. I also wish it could be faster, but I ended up resorting to the clangd extension instead, which somehow leaves cpptools in the dust when parsing large codebases. In every other aspect though, this extension is nicer.

from vscode-cpptools.

sean-mcmanus avatar sean-mcmanus commented on June 17, 2024

@kitswas Also, if you can set C_Cpp.loggingLeve to "Debug", the logging might indicate what is taking so long to process. Also, with 1.20.0 (pre-release), you could attach a debugger and provide the call stacks (for the thread that appears to be using the CPU).

from vscode-cpptools.

kitswas avatar kitswas commented on June 17, 2024

@bobbrow

I just tried cloning your project and configured with CMake on Windows. Is there a particular file that you are having problems with? I wasn't able to repro a performance problem with the few files I tried.

ns3 can only run/compile in a Linux environment. To use ns-3 on Windows, you need the Windows Subsystem for Linux (WSL) or the Msys2/MinGW64 toolchain.

Did you wait for all the symbols to get highlighted and the popup-on-hover to start working?
The C++ and the 🔥(IntelliSense) spinners sometimes stop early.

This is on a local machine though. You seem to indicate that you're connecting to a remote machine? It's not WSL, is it? Can you share more details about your remote setup? Our extension doesn't manage communication back and forth between machines, but it's possible that something is configured sub-optimally that is resulting in delays.

I am connecting to an Ubuntu 22.04 machine via ssh over LAN.

It looked like there were only about 3300 source/header files in this repo and our extension can normally handle a project of that size ok.

That's the base ns3 repo with no third-party modules. My current repo has 4177 C++ source and header files.
Let's see if I can get you something closer to what I am working with now.

from vscode-cpptools.

kitswas avatar kitswas commented on June 17, 2024

@sean-mcmanus
Here's the log (level Debug) after switching to a different file.

after_editor_change.log

It contains the lines:

Populating file name cache...
Done populating filename cache. Elapsed time: 15585 ms
...
Update IntelliSense time (sec): 9.954

That's a total of 25 seconds for Intellisense to become fully functional.

from vscode-cpptools.

bobbrow avatar bobbrow commented on June 17, 2024

As @sean-mcmanus mentions, the filename cache is an area we're working to improve. Soon, this will only delay IntelliSense the first time you open a workspace, not every time you open the same workspace. For me with all files local to the machine, this doesn't take long.

Done populating filename cache. Elapsed time: 139 ms

Did you wait for all the symbols to get highlighted and the popup-on-hover to start working?

I didn't have to wait long. I'm not sure why your machine takes 10 seconds and mine takes 1 second.

Update IntelliSense time (sec): 0.879

We have heard of issues with remote work taking longer, but it's hard to know. Are all of your files/compilers/headers local to the remote machine, or are there any network drives involved?

All of my remotes are dead right now, but I was able to spin up a Codespace for this repo and saw some numbers closer to yours. filename cache took 3~5 seconds to populate. IntelliSense took 3~8 seconds depending on the source file.

ns3 can only run/compile in a Linux environment. To use ns-3 on Windows, you need the Windows Subsystem for Linux (WSL) or the Msys2/MinGW64 toolchain.

I didn't try to build on Windows. I just configured with CMake to get IntelliSense configurations and tested the IntelliSense. The Codespace is linux.

That's the base ns3 repo with no third-party modules. My current repo has 4177 C++ source and header files.
Let's see if I can get you something closer to what I am working with now.

I was looking for instructions, but didn't see anything about submodules or anything. If you have more info on how to set this up, I can add the extra files and see if it makes a difference. Also, the file in your log wasn't in the default repo (contrib is empty for me), so I couldn't test with that file.

from vscode-cpptools.

kitswas avatar kitswas commented on June 17, 2024

Apologies for the delay.

We have heard of issues with remote work taking longer, but it's hard to know. Are all of your files/compilers/headers local to the remote machine, or are there any network drives involved?

All my files are on a drive local to the remote machine (Dell PowerEdge t440).

I was looking for instructions, but didn't see anything about submodules or anything. If you have more info on how to set this up, I can add the extra files and see if it makes a difference. Also, the file in your log wasn't in the default repo (contrib is empty for me), so I couldn't test with that file.

Try this repo. https://gitlab.com/kitswas/coexistence-wigig-5gnr/-/tree/master/scratch?ref_type=heads#3rd-party-modules
Please follow the instructions to set up contrib.
The ns-3 project does not use git submodules yet.

from vscode-cpptools.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.