{"id":49895792,"url":"https://github.com/hypernewbie/vprf","last_synced_at":"2026-05-15T23:48:32.767Z","repository":{"id":349436257,"uuid":"1202314752","full_name":"hypernewbie/vprf","owner":"hypernewbie","description":"Vprf - CLI profiling helper based on samply","archived":false,"fork":false,"pushed_at":"2026-04-13T09:03:39.000Z","size":2251,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T11:09:32.043Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hypernewbie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-05T22:04:49.000Z","updated_at":"2026-04-13T09:03:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hypernewbie/vprf","commit_stats":null,"previous_names":["hypernewbie/vprf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hypernewbie/vprf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernewbie%2Fvprf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernewbie%2Fvprf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernewbie%2Fvprf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernewbie%2Fvprf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hypernewbie","download_url":"https://codeload.github.com/hypernewbie/vprf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernewbie%2Fvprf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33084254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-05-15T23:48:30.819Z","updated_at":"2026-05-15T23:48:32.760Z","avatar_url":"https://github.com/hypernewbie.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vprf\n\n`vprf` is a small Go CLI that wraps `samply` for recording and exposes focused subcommands for querying Firefox Profiler JSON profiles.\n\nOn current `samply` builds, `--unstable-presymbolicate` writes a `.syms.json` sidecar next to the profile. `vprf` loads that sidecar automatically so function names resolve cleanly instead of showing raw addresses.\n\n## Install\n\n1. Install `samply` from its release page or installer script.\n2. Build this tool:\n\n```bash\ngo build ./...\n```\n\n## Record\n\n```bash\n./vprf record --output profile.json.gz --duration 10 -- go run ./tests/testdata/burn.go 12\n```\n\n## Query\n\n```bash\n./vprf summary -p profile.json.gz\n./vprf top -p profile.json.gz --limit 15\n./vprf diff -a baseline.json.gz -b comparison.json.gz\n./vprf callers -p profile.json.gz --fn innerLoop\n./vprf callees -p profile.json.gz --fn outer\n./vprf threads -p profile.json.gz\n./vprf hotpath -p profile.json.gz\n./vprf collapsed -p profile.json.gz\n```\n\nEach command also supports `--format json`.\n\nCommands that accept `--fn` treat it as a regular expression pattern, for example `--fn \"runtime\\\\.\"` or `--fn \"^inner\"`.\n\n`diff` also supports `-a`, `-b`, `--thread-a`, and `--thread-b` to compare two profiles and optionally scope each side to a different thread filter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypernewbie%2Fvprf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypernewbie%2Fvprf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypernewbie%2Fvprf/lists"}