Skip to content

Conversation

@mingxwa
Copy link
Member

@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 requested review from guominrui and tian-lt October 20, 2024 07:40
@mingxwa mingxwa merged commit b71dab4 into microsoft:main Oct 22, 2024
@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