Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Progress bar for parsing a large compile_commands.json file #8647

Closed
hriekehof opened this issue Jan 10, 2022 · 8 comments
Closed

Progress bar for parsing a large compile_commands.json file #8647

hriekehof opened this issue Jan 10, 2022 · 8 comments
Labels
enhancement Improvement to an existing feature Language Service more votes needed Issues that have been postponed until more community members upvote it performance
Milestone

Comments

@hriekehof
Copy link

Type: Feature Request

I searched the open issues and didn't find anything so i hope this is not a duplicate :)

I work with a project with a larger compile_commands.json file. It's around 102MB.
The parsing and the intellisense seem to work fine but i have to wait around 3-5min until everything is
setup correctly.
It would be great to have a progress bar in the bottom right corner for example which indicates the progress of the intellisense engine when parsing a larger compile command database.

@sean-mcmanus sean-mcmanus changed the title Progessbar for parsing a large compile_database.json file Progress bar for parsing a large compile_commands.json file Jan 10, 2022
@sean-mcmanus sean-mcmanus added enhancement Improvement to an existing feature Language Service performance labels Jan 10, 2022
@sean-mcmanus
Copy link
Contributor

We currently just a show a flame icon and don't have any progress reporting code when parsing a compile_commands.json.

Is the project with a 102 MB compile_commands.json open source? I'm guessing LLVM might generate one of a similar size.

@bobbrow
Copy link
Member

bobbrow commented Jan 10, 2022

It seems like something we should add as part of #8405. Maybe we should track it there.

@sean-mcmanus
Copy link
Contributor

sean-mcmanus commented Jan 10, 2022

That is independent. #8405 is a UI change. If we decide to do that, then addressing this issue would still require additional changes to gather that status, which is not currently available.

@bobbrow
Copy link
Member

bobbrow commented Jan 10, 2022

Yes, #8405 is a UI change which links to a discussion here talking about supporting progress as well. Though we can keep this open if we don't want to do them together.

@hriekehof
Copy link
Author

The project is not open source unfortunately :)

In my case the flame icon does not appear at the beginning. The 5min have no visual indications that intellisense is doing something. But there is a cpptools process with 30 threads running. According to activity monitor i'm on mac os currently.
After that initial time the flame icon appears and also additional files get discovered. At this point i also can jump to definitions etc.

@sam-mccall
Copy link

If you're looking for examples:

  • llvm-project's compile_command.json is "only" 7MB on my machine
  • my old checkout of chromium had a 166MB compile_commands.json (and that's from 2018! I bet it's bigger now)

FWIW, we never migrated LLVM's compile_commands.json parsing to our "nice" JSON parser, because it had a high level API that wanted to eagerly parse/decode/heap-allocate all those objects, and that hurt startup of chromium too much. It's still using an event-based YAML parser, and only decodes the keys upfront...

@hriekehof
Copy link
Author

The compile db i use has 12500 entries. The actual command string is quite long for every entry so file size might be a little misleading

@github-actions
Copy link

This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog.

@github-actions github-actions bot added the more votes needed Issues that have been postponed until more community members upvote it label Mar 18, 2022
@github-actions github-actions bot added this to the Triage milestone Mar 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvement to an existing feature Language Service more votes needed Issues that have been postponed until more community members upvote it performance
Projects
None yet
Development

No branches or pull requests

4 participants