{"id":20122849,"url":"https://github.com/freaky/walkbench","last_synced_at":"2025-07-20T10:33:33.251Z","repository":{"id":142942582,"uuid":"163229304","full_name":"Freaky/walkbench","owner":"Freaky","description":"Quick benchmark of Rust/Ruby directory walking","archived":false,"fork":false,"pushed_at":"2018-12-27T00:54:45.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-05T14:06:14.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/Freaky.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}},"created_at":"2018-12-27T00:42:38.000Z","updated_at":"2018-12-27T00:54:47.000Z","dependencies_parsed_at":"2023-04-08T10:18:06.100Z","dependency_job_id":null,"html_url":"https://github.com/Freaky/walkbench","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Freaky/walkbench","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fwalkbench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fwalkbench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fwalkbench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fwalkbench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Freaky","download_url":"https://codeload.github.com/Freaky/walkbench/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fwalkbench/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266111436,"owners_count":23877980,"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-13T19:41:28.400Z","updated_at":"2025-07-20T10:33:28.240Z","avatar_url":"https://github.com/Freaky.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# walkbench\n\nA tiny throwaway benchmarking tool to quickly compare Rust's [`ignore`][ignore]\nand [`walkdir`][walkdir] crates with Ruby's native [`Find`][find] and my\n[`fast_find`][fast_find] gem.\n\nMy use-case for this is walking CVS trees to find updated files for\nthe [FreshBSD][freshbsd] backend to process, so that's what I tested with.\n\n`ignore` and `fast_find` are both multi-threaded, while `walkdir` and `Find` are\nboth sequential.\n\n\n## Results\n\nFreeBSD 12.0-RELEASE, 11.2-RELEASE jail environment (due to ongoing JRuby stat\nbreakage on 12), JRuby 9.2.5.0, on a 24-way Xeon L5639 with mirrored SSDs on\nZFS and huge gobs of RAM.\n\n```\n-% find /cvs/openbsd -mtime +0 |wc -l\n  377634\n5.866 real, 0.520 user, 5.346 sys\n\n-% target/release/walkbench /cvs/openbsd\n ignore: 6.83s 6.63s 6.25s 6.52s 8.31s [avg best 4: 6.56s]\nwalkdir: 9.13s 9.13s 9.10s 9.13s 9.11s [avg best 4: 9.12s]\n1:20.14 real, 14.339 user, 1:40.24 sys\n\n-% ruby walkbench.rb /cvs/openbsd\n    Find: 24.68s 23.42s 22.99s 22.89s 22.87s [ avg best 4: 23.04s ]\nFastFind:  4.11s  4s     3.74s  3.46s  3.77s [ avg best 4:  3.74s ]\n2:19.95 real, 1:44.57 user, 3:22.52 sys\n\n-% rbenv local 2.5.3\n-% ruby walkbench.rb /cvs/openbsd\n    Find: 13.23s 13.29s 13.17s 13.17s 13.22s [ avg best 4: 13.2s ]\nFastFind: 16.43s 15.34s 16.1s  15.4s  15.8s  [ avg best 4: 15.66s ]\n2:25.34 real, 1:11.90 user, 1:47.09 sys\n```\n\n(Manually aligned for readability)\n\n\n[ignore]: https://crates.io/crates/ignore\n[walkdir]: https://crates.io/crates/walkdir\n[find]: https://ruby-doc.org/stdlib-2.6/libdoc/find/rdoc/Find.html\n[fast_find]: https://rubygems.org/gems/fast_find\n[freshbsd]: https://freshbsd.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaky%2Fwalkbench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreaky%2Fwalkbench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaky%2Fwalkbench/lists"}