{"id":20108023,"url":"https://github.com/nazavode/meetupcpp-dec-2018","last_synced_at":"2025-03-02T18:18:45.857Z","repository":{"id":117518592,"uuid":"161644605","full_name":"nazavode/meetupcpp-dec-2018","owner":"nazavode","description":"Stuff for the talk \"Understanding performance with Google Benchmark\" at the Italian C++ Community meetup @ Modena, Italy","archived":false,"fork":false,"pushed_at":"2019-01-11T22:41:17.000Z","size":1855,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-13T05:27:57.311Z","etag":null,"topics":["conference-talk","cpp","google-benchmark","meetup","modena","optimization"],"latest_commit_sha":null,"homepage":"https://nazavode.github.io/meetupcpp-dec-2018/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nazavode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-12-13T13:39:49.000Z","updated_at":"2021-12-17T16:41:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"03a736fd-7cc6-467e-b8dc-072cd1564a0a","html_url":"https://github.com/nazavode/meetupcpp-dec-2018","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/nazavode%2Fmeetupcpp-dec-2018","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazavode%2Fmeetupcpp-dec-2018/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazavode%2Fmeetupcpp-dec-2018/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazavode%2Fmeetupcpp-dec-2018/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nazavode","download_url":"https://codeload.github.com/nazavode/meetupcpp-dec-2018/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241549116,"owners_count":19980476,"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":["conference-talk","cpp","google-benchmark","meetup","modena","optimization"],"created_at":"2024-11-13T17:59:21.914Z","updated_at":"2025-03-02T18:18:45.849Z","avatar_url":"https://github.com/nazavode.png","language":"Shell","readme":"# Understanding performance with Google Benchmark\n\nThis repo contains all the stuff used during the talk I gave at the [Italian C++ Community](https://www.italiancpp.org/) meetup in [Modena, 2018/12/13](https://www.italiancpp.org/event/meetup-dicembre2018/). Please feel free to steal everything you want, if you think you're going to use it.\n\n## Contents\n\nPlease note that some submodules are needed to have all the stuff working properly, be sure to `git clone --recursive`.\n\n| Path        | What to expect                                                                                                                 |\n| ----------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `slides/`   | The [hugo](https://gohugo.io/) site that generates the full slide deck (published [here](https://nazavode.github.io/meetupcpp-dec-2018/)). Just `cd` into it and launch `hugo server`.|\n| `examples/` | Show me the code. |\n| `scripts/`  | Helper scripts to carry out some tedious stuff during the live coding. Not interesting unless you are *very* lazy (like me). |\n\n## Toolbox\n\nDuring the talk we saw a bunch of Linux tools, summarizing all of them here as a reference:\n\n| Tool     | What???                                      |\n|----------|----------------------------------------------|\n| `perf`   | The definitive profiling toolbox. Seriously. |\n| `lstopo` | Show the `NUMA` topology of your system.     |\n\n## Credits\n\nThe most interesting examples I'm using are inspred by [this talk](https://youtu.be/nXaxk27zwlk) by Chandler Carruth. You should watch it now. Seriously.\n\n## Resources\n\n* [Optimized C++, Kurt Guntheroth](http://shop.oreilly.com/product/0636920038030.do) - a monumental overview of whys and wherefores of optimization, entirely focused on `C++`.\n* [Brendan Gregg's blog](http://www.brendangregg.com) - methodologies, flamegraphs and a great `perf` guide, definitely a must.\n* [Profiling \u0026 tracing with `perf`, zine by Julia Evans](https://jvns.ca/blog/2018/04/16/new-perf-zine/) - great summary of `perf` capabilities plus it looks great, nice to have it hanging around on the desk.\n* [Computer latencies in human terms by Matt Godbolt](https://docs.google.com/presentation/d/17ggR5-2ujJ4VMOGgaWC593d-QU-m0BQVFUMm7UtmJw4) - when you need to know how many coffees you can brew while paying the toll for an L3 miss.\n* [Operation costs in CPU clock cycles](http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/) - a nice infographic about this crazy topic.\n* All the conference talks by Chandler Carruth, seriously. If you want some titles to start with, [Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!](https://youtu.be/nXaxk27zwlk) and [Going Nowhere Faster](https://youtu.be/2EWejmkKlxs) are a must.\n* All the conference talks by Matt Godbolt, seriously. If you want some titles to start with (you lazy lad), [Memory and Caches](https://youtu.be/vDns3Um39l0) and [What Has My Compiler Done for Me Lately?](https://youtu.be/bSkpMdDe4g4) are a must.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazavode%2Fmeetupcpp-dec-2018","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnazavode%2Fmeetupcpp-dec-2018","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazavode%2Fmeetupcpp-dec-2018/lists"}