-
Notifications
You must be signed in to change notification settings - Fork 34
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
Out of line ProgOption::SetProperty for int and std::string #518
Conversation
@rbx @dennisklein I have something similar for EventManager which also suffer from long compilation times. What do you think? |
📝 WalkthroughWalkthroughThe pull request modifies the Changes
Sequence DiagramsequenceDiagram
participant Client
participant ProgOptions
participant Mutex
participant VariableMap
participant EventEmitter
Client->>ProgOptions: SetProperty(key, value)
ProgOptions->>Mutex: Acquire unique lock
ProgOptions->>VariableMap: Set value for key
ProgOptions->>EventEmitter: Emit property change event
Mutex->>ProgOptions: Release lock
The sequence diagram illustrates the thread-safe process of setting a property, which involves acquiring a mutex, updating the variable map, emitting an event, and then releasing the mutex. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
🔇 Additional comments (3)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
For the record, there seems to be some issues with the testing infrastructure at GSI. |
Looks like it could be a nice optimization for the compilation speed for you. How much does it bring (just curious)? |
The Jenkinsfile in |
I opened it against whatever branch it gave me by default. I will reopen against dev. Tests aside, would you be ok with such change? Can it be backported to the version which we use in ALICE? |
In limited tests, the whole FairMQ compilation which happens inside O2 (i.e. the stuff which is inlined in templates) accounts for 10% of the framework compilation time (roughly 70/700 seconds, including unit tests and test workflows). This particular one seems to save ~5s on my M1 mac. |
(to be clear, the single compilation is 100ms, the problem is that it's done in each single test / workflow) |
Profiled via -ftime-trace and ClangBuildAnalyzer. |
The specializations are common enough to show up in O2 compilation profiles and they are not time critical (once per run at max).
7722237
to
e6aad7b
Compare
I am both amazed and scared about the coderabbit thing... |
The specializations are common enough to show up in O2 compilation profiles and they are not time critical (once per run at max).