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

Upgrade PresentData C++ Version and Import CommonUtilities #389

Open
6 tasks done
planetchili opened this issue Jan 14, 2025 · 3 comments · May be fixed by #390
Open
6 tasks done

Upgrade PresentData C++ Version and Import CommonUtilities #389

planetchili opened this issue Jan 14, 2025 · 3 comments · May be fixed by #390
Assignees
Labels
dev-centric Features and fixes related to improving dx, debugging, and diagnostics

Comments

@planetchili
Copy link
Collaborator

Would be nice to leverage the CommonUtilities (Logging, Windows tool, etc.) in PresentData. Currently stuck on C++14 so not compatible.

  • Bump C++ language version to C++23 and fix deprecated code
  • Improve performance of Verbose logging
  • Enable linking to CommonUtilities
  • Cleanup build configurations (remove dead projects, remove unused platforms, centralize common properties)
  • Dirty file check for generating version header (improve build times)
  • Control ETW-related hidden settings from UI when in dev mode CLI controlled (plus optional timestamp CSV column in IPM captures)
@planetchili planetchili self-assigned this Jan 14, 2025
@planetchili planetchili added the dev-centric Features and fixes related to improving dx, debugging, and diagnostics label Jan 14, 2025
@xnaught
Copy link

xnaught commented Jan 18, 2025

I'm a bit sad PresentData will inherit the dependencies of CommonUtilities, which complicates 3rd parties depending on just PresentData. Is there any way to avoid that?

@planetchili
Copy link
Collaborator Author

@xnaught Thanks for reaching out. We have duplicated functionality that is spread out across multiple projects. Gradually we are refactoring to consolidate these redundancies. It seems to us that most consumers of PresentMon are invoking the console application is a child process / or as part of a batch rather than linking directly. Could you perhaps share some details on your use case? We'd like to try and make accommodations where we can here.

@xnaught
Copy link

xnaught commented Jan 20, 2025

Hi @planetchili, thanks for the response! I'm working on a (yet unreleased) data collection application that depends on PresentData. I chose this route vs. PresentMon command line or the service so as to minimize external requirements. This change isn't the end of the world for me :) but it is nice that PresentData so easily enabled the pure embedded use case. And I realize that isn't going away with this change.

Perhaps one change that could be made is to PresentMon, to enable it to be used as a library? For instance, having the ability to specify a callback function that could be invoked in OutputThread.cpp instead of writing to CSV. That would eliminate the need to fork PresentMon as a process, and gain reuse of all the existing capture and aggregation logic already in PresentMon.

Anyway, thanks for the great library!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev-centric Features and fixes related to improving dx, debugging, and diagnostics
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants