{"id":21121484,"url":"https://github.com/oneofone/psort","last_synced_at":"2025-03-14T11:24:13.408Z","repository":{"id":141895844,"uuid":"53278362","full_name":"OneOfOne/psort","owner":"OneOfOne","description":"Parallel sort, based on the std lib.","archived":false,"fork":false,"pushed_at":"2016-03-06T23:35:44.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-21T05:25:06.060Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OneOfOne.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":"2016-03-06T21:57:43.000Z","updated_at":"2016-03-06T22:16:33.000Z","dependencies_parsed_at":"2023-03-13T10:27:54.182Z","dependency_job_id":null,"html_url":"https://github.com/OneOfOne/psort","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/OneOfOne%2Fpsort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneOfOne%2Fpsort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneOfOne%2Fpsort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneOfOne%2Fpsort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OneOfOne","download_url":"https://codeload.github.com/OneOfOne/psort/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243566511,"owners_count":20311895,"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-20T03:50:48.035Z","updated_at":"2025-03-14T11:24:13.392Z","avatar_url":"https://github.com/OneOfOne.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# psort\nParallel sort, based on the std lib.\n\nThis is a PoC parellel version of the standard library's sort.Sort, shows quiet an improvement however it uses a lot more allocations.\n\nIt is slower for \u003c ~10k elements as demonstrated in the stdlib's sort benchmarks, however for \u003e5k the improvements are over 15%.\n\n* updated benchmarks due to golang/go#14677\n\n## index/suffixarray\n\n``` sh\n# go test -v -bench=NewIndex -benchmem -count 5\n➜ benchstat {old,new}.txt\nname              old time/op    new time/op    delta\n➜ benchstat  /tmp/{old,new}.txt\nname              old time/op    new time/op    delta\nNewIndexRandom-8     202ms ± 1%     177ms ± 2%   -12.29%  (p=0.008 n=5+5)\nNewIndexRepeat-8     339ms ± 2%     279ms ± 2%   -17.82%  (p=0.008 n=5+5)\n\nname              old alloc/op   new alloc/op   delta\nNewIndexRandom-8    16.1MB ± 0%    16.1MB ± 0%    +0.08%  (p=0.008 n=5+5)\nNewIndexRepeat-8    39.0MB ± 0%    39.0MB ± 0%    +0.00%  (p=0.008 n=5+5)\n\nname              old allocs/op  new allocs/op  delta\nNewIndexRandom-8      32.8 ± 4%     291.8 ± 1%  +789.63%  (p=0.008 n=5+5)\nNewIndexRepeat-8      66.4 ± 5%      96.8 ± 2%   +45.78%  (p=0.008 n=5+5)\n```\n\n\n## sort\n``` sh\n# go test -bench=kSort -count 5 -benchmem\n➜ benchstat {old,new}.txt\nname            old time/op    new time/op    delta\nSortString1K-8     152µs ± 1%     157µs ± 0%    +3.51%          (p=0.008 n=5+5)\nSortInt1K-8       70.3µs ± 1%    75.2µs ± 1%    +6.94%          (p=0.008 n=5+5)\nSortInt64K-8      6.44ms ± 1%    2.60ms ± 1%   -59.70%          (p=0.008 n=5+5)\nSort1e2-8         40.7µs ± 1%    41.5µs ± 3%      ~             (p=0.056 n=5+5)\nSort1e4-8         8.62ms ± 3%    5.31ms ± 0%   -38.33%          (p=0.008 n=5+5)\nSort1e6-8          1.30s ± 2%     0.69s ± 2%   -46.52%          (p=0.008 n=5+5)\n\nname            old alloc/op   new alloc/op   delta\nSortString1K-8     32.0B ± 0%     80.0B ± 0%  +150.00%          (p=0.008 n=5+5)\nSortInt1K-8        32.0B ± 0%     80.0B ± 0%  +150.00%          (p=0.008 n=5+5)\nSortInt64K-8       32.0B ± 0%     80.0B ± 0%  +150.00%          (p=0.016 n=5+4)\nSort1e2-8           224B ± 0%      224B ± 0%      ~     (all samples are equal)\nSort1e4-8           224B ± 0%      560B ± 0%  +150.00%          (p=0.016 n=5+4)\nSort1e6-8           224B ± 0%      560B ± 0%  +150.00%          (p=0.008 n=5+5)\n\nname            old allocs/op  new allocs/op  delta\nSortString1K-8      1.00 ± 0%      2.00 ± 0%  +100.00%          (p=0.008 n=5+5)\nSortInt1K-8         1.00 ± 0%      2.00 ± 0%  +100.00%          (p=0.008 n=5+5)\nSortInt64K-8        1.00 ± 0%      2.00 ± 0%  +100.00%          (p=0.008 n=5+5)\nSort1e2-8           7.00 ± 0%      7.00 ± 0%      ~     (all samples are equal)\nSort1e4-8           7.00 ± 0%     14.00 ± 0%  +100.00%          (p=0.008 n=5+5)\nSort1e6-8           7.00 ± 0%     14.00 ± 0%  +100.00%          (p=0.008 n=5+5)\n\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foneofone%2Fpsort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foneofone%2Fpsort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foneofone%2Fpsort/lists"}