{"id":19142723,"url":"https://github.com/jgaa/asio-async-model-perftest","last_synced_at":"2025-05-06T23:46:32.283Z","repository":{"id":68076442,"uuid":"367657830","full_name":"jgaa/asio-async-model-perftest","owner":"jgaa","description":"Performance test to measure the relative performance between asio's different async handlers","archived":false,"fork":false,"pushed_at":"2023-04-30T08:30:14.000Z","size":26,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T16:11:47.590Z","etag":null,"topics":["asio","asynchronous-programming","cpp20","performance-testing"],"latest_commit_sha":null,"homepage":"","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/jgaa.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":"2021-05-15T14:51:40.000Z","updated_at":"2023-11-21T03:29:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb6aa600-25d6-4293-bfa0-ca77fd1da52d","html_url":"https://github.com/jgaa/asio-async-model-perftest","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/jgaa%2Fasio-async-model-perftest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgaa%2Fasio-async-model-perftest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgaa%2Fasio-async-model-perftest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgaa%2Fasio-async-model-perftest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jgaa","download_url":"https://codeload.github.com/jgaa/asio-async-model-perftest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252788408,"owners_count":21804281,"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":["asio","asynchronous-programming","cpp20","performance-testing"],"created_at":"2024-11-09T07:28:17.573Z","updated_at":"2025-05-06T23:46:32.258Z","avatar_url":"https://github.com/jgaa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# asio-async-model-perftest\nPerformance test to measure the relative performance between asio's different async handlers\n\nThis project implements a simple async server work-flow \nthat \"reads\" a number of input buffers, process the data and\nthen \"writes\" a number  of output buffers. \n\nIn other words, we aim to simulate typical memory usage of a server application - draining the CPU cache.\n\nThe same logic is implemented using:\n\n- Asio async methods with completion callbacks\n- Asio stackful coroutines (via `spawn()`)\n- Asio legacy stackless coroutines\n- Asio stackless C++ 20 coroutines (via `co_spawn()`)\n\nThe motivation is to measure the performance regression using the \nmore convenient methods, like stateful coroutines or C++ 20 coroutines. \n\nIn addition, the test provides implementations of layered C++20 generators, using\nlazy fetching/flushing of data at the lowest layer. This test is implemented for:\n\n- Asio stackful coroutines (via `spawn()`)\n- Asio stackless C++ 20 coroutines (via `co_spawn()`)\n\n# Requirements\n- gcc 11 or newer\n- Boost 1.76.0 or newer (1.81 is broken, 1.82 works).\n\n# Status\nIn progress. Once done, I will post results and graphs with results from a\nnumber of hardware configurations. \n\n# Run all tests:\n\nExample on how to run all the performance-tests.\n\nFrom the build/bin directory with boost in `/opt/boost/boost_1_82_0`:\n```sh\nLD_LIBRARY_PATH=/opt/boost/boost_1_82_0/stage/lib PATH=\"$PATH:.\"  bash ~/src/asio-async-model-perftest/run-all.sh\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjgaa%2Fasio-async-model-perftest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjgaa%2Fasio-async-model-perftest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjgaa%2Fasio-async-model-perftest/lists"}