Comments (8)
@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.
@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.
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.
@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.
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.
@sean-mcmanus
Here's the log (level Debug) after switching to a different file.
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.
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.
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)
- Intelli Sense Cache Path Setting doesn’t work. HOT 1
- forcedInclude fields are not correctly detected in handleSquiggles
- Feature request: additional defines that are merged with compile_commands.json, but just for diagnostics HOT 6
- debugging inside a lambda that captures this shows the 'lambda' this instead of the 'this' 'this'
- [FR] vcFormat: new lines for branches HOT 3
- #include completion incorrectly completes -isystem includes in `#include ""` HOT 1
- crashes on startup HOT 15
- rename function name doesn't work in C project HOT 8
- Designated initializers squiggles HOT 1
- Debugging on WSL - Must kill the integrated terminal after each debugging session, or gdb will not launch.
- C long double bug HOT 1
- 调试控制台显示异常的汉字
- CPP2 - Modules HOT 2
- IntelliSense not linting code if headers are incorrect. HOT 1
- Single step in debugger collapses all variables being watched HOT 1
- __attribute__((packed)) breaks intellisense HOT 29
- JSDoc-style multi-line comments are wrongly indented HOT 1
- outline view doesn't keep updated when adding/removing code HOT 3
- Allow configuration providers to provide the `compileCommands` file path HOT 11
- On Windows arm64 with LIBPATH set: command-line error: invalid option: --using_directoryC/C++(571) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vscode-cpptools.