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

Generate benchmarking report #181

Merged
merged 2 commits into from
Oct 22, 2024
Merged

Conversation

mingxwa
Copy link
Collaborator

@mingxwa mingxwa commented Oct 20, 2024

Added tool report_generator to generate a benchmarking report for each CI build and upload to artifacts.

image

Benchmarking Report

MSVC on Windows Server 2022 (x64) GCC on Ubuntu 24.04 (x64) Clang on Ubuntu 24.04 (x64) Apple Clang on macOS 15 (ARM64)
Indirect invocation on small objects via proxy vs. virtual functions 🟢proxy is about 172.0% faster 🟢proxy is about 35.9% faster 🟢proxy is about 37.6% faster 🟡proxy is about 4.3% faster
Indirect invocation on large objects via proxy vs. virtual functions 🟢proxy is about 261.1% faster 🟢proxy is about 30.0% faster 🟢proxy is about 24.9% faster 🟡proxy is about 0.4% faster
Basic lifetime management for small objects with proxy vs. std::unique_ptr 🟢proxy is about 365.5% faster 🟢proxy is about 440.6% faster 🟢proxy is about 343.7% faster 🟢proxy is about 349.0% faster
Basic lifetime management for small objects with proxy vs. std::shared_ptr (without memory pool) 🟢proxy is about 524.8% faster 🟢proxy is about 501.5% faster 🟢proxy is about 387.2% faster 🟢proxy is about 485.4% faster
Basic lifetime management for small objects with proxy vs. std::shared_ptr (with memory pool) 🟢proxy is about 245.5% faster 🟢proxy is about 594.5% faster 🟢proxy is about 475.4% faster 🟢proxy is about 214.6% faster
Basic lifetime management for small objects with proxy vs. std::any 🟢proxy is about 51.4% faster 🟢proxy is about 292.6% faster 🟢proxy is about 238.5% faster 🟢proxy is about 14.5% faster
Basic lifetime management for large objects with proxy (without memory pool) vs. std::unique_ptr 🔴proxy is about 7.1% slower 🟢proxy is about 7.6% faster 🟢proxy is about 8.7% faster 🔴proxy is about 6.7% slower
Basic lifetime management for large objects with proxy (with memory pool) vs. std::unique_ptr 🟢proxy is about 96.2% faster 🟢proxy is about 111.0% faster 🟢proxy is about 145.4% faster 🟢proxy is about 94.0% faster
Basic lifetime management for large objects with proxy vs. std::shared_ptr (both without memory pool) 🟡proxy is about 2.9% faster 🟢proxy is about 14.1% faster 🟢proxy is about 21.5% faster 🟢proxy is about 13.8% faster
Basic lifetime management for large objects with proxy vs. std::shared_ptr (both with memory pool) 🟢proxy is about 7.7% faster 🟢proxy is about 10.9% faster 🟢proxy is about 6.1% faster 🟢proxy is about 53.3% faster
Basic lifetime management for large objects with proxy (without memory pool) vs. std::any 🟢proxy is about 24.5% faster 🟡proxy is about 1.8% slower 🟢proxy is about 9.6% faster 🟡proxy is about 2.3% faster
Basic lifetime management for large objects with proxy (with memory pool) vs. std::any 🟢proxy is about 163.0% faster 🟢proxy is about 92.5% faster 🟢proxy is about 147.6% faster 🟢proxy is about 112.7% faster

@mingxwa mingxwa merged commit b71dab4 into microsoft:main Oct 22, 2024
6 checks passed
@mingxwa mingxwa deleted the user/mingxwa/report branch October 22, 2024 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants