{"id":22072552,"url":"https://github.com/broxus/profl","last_synced_at":"2025-03-23T19:24:25.331Z","repository":{"id":57657609,"uuid":"429557173","full_name":"broxus/profl","owner":"broxus","description":"A simple timings profiler","archived":false,"fork":false,"pushed_at":"2021-12-09T19:06:25.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-01T22:58:04.417Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/broxus.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}},"created_at":"2021-11-18T19:38:34.000Z","updated_at":"2023-07-25T14:51:39.000Z","dependencies_parsed_at":"2022-08-26T04:12:02.166Z","dependency_job_id":null,"html_url":"https://github.com/broxus/profl","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/broxus%2Fprofl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fprofl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fprofl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broxus%2Fprofl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broxus","download_url":"https://codeload.github.com/broxus/profl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245155476,"owners_count":20569705,"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-11-30T21:13:40.613Z","updated_at":"2025-03-23T19:24:25.302Z","avatar_url":"https://github.com/broxus.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## profl\nSimple timings profiler\n\n### Example\n\n```rust\nfn main() -\u003e std::io::Result\u003c()\u003e {\n    profl::init(\"timings.data\");\n\n    let mut total = 0;\n    for i in 0..1000 {\n        total += profl::span!(\"some_ctx\", {\n            // long operation\n            std::thread::sleep(std::time::Duration::from_millis(i % 40));\n            i\n        });\n    }\n\n    Ok(())\n}\n```\n\n### Processing results:\n```bash\nprofl --path timings.data\n```\n\n#### Rendered metrics (`plot.svg`)\n\n![Timings plot](docs/plot.svg)\n\n#### Output:\n```\nAll ids:\nsome_ctx: 684\nHistogram for some_ctx\nDistribution\n    0µs | *                                        |  0.1th %-ile\n 1114µs | **                                       |  5.1th %-ile\n 3145µs | ***                                      | 10.5th %-ile\n 5242µs | **                                       | 15.4th %-ile\n 7340µs | ***                                      | 20.5th %-ile\n 9437µs | **                                       | 25.4th %-ile\n11534µs | **                                       | 30.4th %-ile\n13631µs | **                                       | 35.2th %-ile\n15728µs | ***                                      | 40.4th %-ile\n17825µs | **                                       | 45.3th %-ile\n19922µs | **                                       | 50.1th %-ile\n20971µs | **                                       | 52.8th %-ile\n22020µs | *                                        | 55.3th %-ile\n23068µs | **                                       | 58.3th %-ile\n24117µs | **                                       | 62.1th %-ile\n25165µs | **                                       | 64.9th %-ile\n26214µs | *                                        | 67.1th %-ile\n27262µs | **                                       | 69.7th %-ile\n28311µs | **                                       | 72.7th %-ile\n28311µs |                                          | 72.7th %-ile\n29360µs | *                                        | 75.1th %-ile\n30408µs | *                                        | 77.6th %-ile\n30408µs |                                          | 77.6th %-ile\n31457µs | *                                        | 80.0th %-ile\n32505µs | **                                       | 82.6th %-ile\n32505µs |                                          | 82.6th %-ile\n32505µs |                                          | 82.6th %-ile\n33554µs | *                                        | 85.1th %-ile\n33554µs |                                          | 85.1th %-ile\n35651µs | **                                       | 90.1th %-ile\n35651µs |                                          | 90.1th %-ile\n35651µs |                                          | 90.1th %-ile\n35651µs |                                          | 90.1th %-ile\n35651µs |                                          | 90.1th %-ile\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroxus%2Fprofl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbroxus%2Fprofl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroxus%2Fprofl/lists"}