{"id":26272263,"url":"https://github.com/digitalinblue/celeroerrorhandlingbenchmark","last_synced_at":"2025-10-31T00:48:58.599Z","repository":{"id":247414991,"uuid":"825786018","full_name":"DigitalInBlue/celeroErrorHandlingBenchmark","owner":"DigitalInBlue","description":"A Microbenchmark of various C++ error handling techniques.","archived":false,"fork":false,"pushed_at":"2024-07-08T14:10:54.000Z","size":6,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T07:17:58.619Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/DigitalInBlue.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":"2024-07-08T13:48:03.000Z","updated_at":"2024-10-28T03:38:16.000Z","dependencies_parsed_at":"2024-07-08T17:26:19.297Z","dependency_job_id":"bc263871-c4d1-4d28-a1f4-df5837d3736f","html_url":"https://github.com/DigitalInBlue/celeroErrorHandlingBenchmark","commit_stats":null,"previous_names":["digitalinblue/celeroerrorhandlingbenchmark"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DigitalInBlue/celeroErrorHandlingBenchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalInBlue%2FceleroErrorHandlingBenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalInBlue%2FceleroErrorHandlingBenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalInBlue%2FceleroErrorHandlingBenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalInBlue%2FceleroErrorHandlingBenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DigitalInBlue","download_url":"https://codeload.github.com/DigitalInBlue/celeroErrorHandlingBenchmark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalInBlue%2FceleroErrorHandlingBenchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281908614,"owners_count":26582147,"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","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-03-14T07:18:00.567Z","updated_at":"2025-10-31T00:48:58.565Z","avatar_url":"https://github.com/DigitalInBlue.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# celeroErrorHandlingBenchmark\nA Microbenchmark of various C++ error handling techniques.\n\n## Example Results\nThis is the output from the program.  The output will change depending on your specific hardware, compiler, and compiler settings.\n\n|     Group      |   Experiment    |   Prob. Space   |     Samples     |   Iterations    |    Baseline     |  us/Iteration   | Iterations/sec  |   RAM (bytes)   |\n|:--------------:|:---------------:|:---------------:|:---------------:|:---------------:|:---------------:|:---------------:|:---------------:|:---------------:|\n|ErrorHandling   | Baseline        |            Null |             100 |        10000000 |         1.00000 |         0.00335 |    298489642.41 |          671744 |\n|ErrorHandling   | Expected        |            Null |              50 |        10000000 |         2.16856 |         0.00727 |    137644354.52 |          671744 |\n|ErrorHandling   | ErrorCode       |            Null |              50 |        10000000 |         1.00376 |         0.00336 |    297371238.25 |          671744 |\n|ErrorHandling   | Optional        |            Null |              50 |        10000000 |         1.77458 |         0.00595 |    168202920.00 |          671744 |\n|ErrorHandling   | Variant         |            Null |              50 |        10000000 |         2.81980 |         0.00945 |    105854830.69 |          671744 |\n|ErrorHandling   | ErrorCallback   |            Null |              50 |        10000000 |         1.31419 |         0.00440 |    227128191.15 |          671744 |\n|ErrorHandling   | Exception       |            Null |              10 |            5000 |     49539.43048 |       165.96700 |         6025.29 |          679936 |\n\nIn general, this shows that `std::exception` is by far (4 orders of magnitude) the slowest way to handle errors in C++23.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalinblue%2Fceleroerrorhandlingbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalinblue%2Fceleroerrorhandlingbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalinblue%2Fceleroerrorhandlingbenchmark/lists"}