{"id":22678317,"url":"https://github.com/evilc/timerperftests","last_synced_at":"2025-03-29T13:12:20.515Z","repository":{"id":71118467,"uuid":"182828091","full_name":"evilC/TimerPerfTests","owner":"evilC","description":"Testing different ways to do ms-range repeated / delayed actions in C#","archived":false,"fork":false,"pushed_at":"2019-04-22T16:56:11.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-04T13:44:37.333Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evilC.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":"2019-04-22T16:42:01.000Z","updated_at":"2019-04-22T16:56:13.000Z","dependencies_parsed_at":"2023-04-17T14:01:55.082Z","dependency_job_id":null,"html_url":"https://github.com/evilC/TimerPerfTests","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/evilC%2FTimerPerfTests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilC%2FTimerPerfTests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilC%2FTimerPerfTests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilC%2FTimerPerfTests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evilC","download_url":"https://codeload.github.com/evilC/TimerPerfTests/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246187242,"owners_count":20737462,"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":[],"created_at":"2024-12-09T18:14:45.956Z","updated_at":"2025-03-29T13:12:20.510Z","avatar_url":"https://github.com/evilC.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TimerPerfTests\nTesting different ways to do ms-range repeated / delayed actions in C#\n\n## Timer types\n### Periodic  \nA repeating action that happens at \u003cperiod\u003e intervals, that can be started or stopped    \nRequirements:  \n1. Minimal CPU overhead for scheduling the action\n1. Accuracy of interval  \n(Ideally measured between fire points, not between end of last fire and beginning of next)\n1. As low an interval as possible\nIdeally below minimum system timer granularity (~15ms) - 1ms would be perfect  \n\n### Timeout\nA delayed action that happens once, at `\u003cnow\u003e + \u003cperiod\u003e`  \nCan be restarted while running (move currently running timer to `\u003cnow\u003e + \u003cperiod\u003e`)  \nRequirements:  \n1. Minimal CPU overhead to start / stop / restart  \n1. Expected rate of calling of restart is up to 1khz  \n\nThis quest is as much about nice, modern code as it is about performance, but not to a point where too much performance is sacrificed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilc%2Ftimerperftests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevilc%2Ftimerperftests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilc%2Ftimerperftests/lists"}