{"id":19252441,"url":"https://github.com/ssciwr/cpp-benchmarking","last_synced_at":"2025-04-21T13:31:02.796Z","repository":{"id":42465847,"uuid":"435888386","full_name":"ssciwr/cpp-benchmarking","owner":"ssciwr","description":"Performance benchmarking C++ applications [SSC Compact Course]","archived":false,"fork":false,"pushed_at":"2025-01-07T08:01:09.000Z","size":3660,"stargazers_count":9,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T13:43:10.666Z","etag":null,"topics":["benchmark","benchmarking","cpp","performance","profiling","ssc-compact-course"],"latest_commit_sha":null,"homepage":"https://ssciwr.github.io/cpp-benchmarking","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssciwr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-07T13:20:16.000Z","updated_at":"2025-03-13T10:27:29.000Z","dependencies_parsed_at":"2024-01-01T18:29:11.890Z","dependency_job_id":"6b7935f9-bfd1-4495-8610-15157a1eddf9","html_url":"https://github.com/ssciwr/cpp-benchmarking","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcpp-benchmarking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcpp-benchmarking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcpp-benchmarking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssciwr%2Fcpp-benchmarking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssciwr","download_url":"https://codeload.github.com/ssciwr/cpp-benchmarking/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250064577,"owners_count":21368930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","benchmarking","cpp","performance","profiling","ssc-compact-course"],"created_at":"2024-11-09T18:26:51.500Z","updated_at":"2025-04-21T13:30:59.950Z","avatar_url":"https://github.com/ssciwr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ Benchmarking\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ssciwr/cpp-benchmarking/ci.yml?branch=main)](https://github.com/ssciwr/cpp-benchmarking/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/ssciwr/cpp-benchmarking/branch/main/graph/badge.svg)](https://codecov.io/gh/ssciwr/cpp-benchmarking)\n\nWe use C++ to get good performance, so measuring and understanding the performance\ncharacteristics of our code is vital, for example to identify bottlenecks or to determine if a\nchange to the code actually improves the performance. Unfortunately it is also complicated. In\nthis course we will cover three different ways to benchmark our code, and discuss the pros and\ncons of each method.\n\n## Slides\n\n\u003ciframe src=\"https://docs.google.com/presentation/d/e/2PACX-1vSfJG2SPALpfAuDUZ9skpvYSEkqCMYGZIY3scXCpHttpSpjZ_fr225hVFOLCN2Y4wqN94mwuhPipez5/embed?start=false\u0026loop=false\u0026delayms=3000\" frameborder=\"0\" width=\"960\" height=\"569\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\"\u003e\u003c/iframe\u003e\n\n[download slides as pdf](https://github.com/ssciwr/cpp-benchmarking/raw/main/slides/slides.pdf) | [download course description as pdf](https://ssc.iwr.uni-heidelberg.de/sites/default/files/ssc-benchmarking.pdf)\n\n## Getting started\n\nTo clone the repo and compile the code:\n\n```\ngit clone --recursive https://github.com/ssciwr/cpp-benchmarking.git\ncd cpp-benchmarking\nmkdir build\ncd build\ncmake -DCMAKE_BUILD_TYPE=Release ..\ncmake --build .\n```\n\nThis code contains two very simple map implementations,\n[vec_map](https://github.com/ssciwr/cpp-benchmarking/blob/main/include/cppbench/vec_map.hpp) and [sorted_vec_map](https://github.com/ssciwr/cpp-benchmarking/blob/main/include/cppbench/sorted_vec_map.hpp),\nalong with benchmarks of these and other map implementations.\n\n## Micro-benchmarks\n\n- [bench](https://github.com/ssciwr/cpp-benchmarking/blob/main/bench) contains some micro-benchmarks using the [Google Benchmark](https://github.com/google/benchmark) library\n- [plots](https://github.com/ssciwr/cpp-benchmarking/blob/main/plots) contains some sample output \u0026 plots of these benchmarks and a simple Python script to make the plots\n\n![plots/bench5.png](plots/bench5.png)\n\n## Profiling\n\n- [perf](perf) contains some scripts and plots using perf to profile performance\n\n![perf/branch_miss.png](perf/branch_miss.png)\n![perf/cache_miss.png](perf/cache_miss.png)\n\n## Simulation\n\n![sim/graph.png](sim/graph.png)\n\n## Acknowledgements\n\nThis repo was quickly set up using the SSC [C++ Project Cookiecutter](https://github.com/ssciwr/cookiecutter-cpp-project).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssciwr%2Fcpp-benchmarking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssciwr%2Fcpp-benchmarking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssciwr%2Fcpp-benchmarking/lists"}