{"id":16572965,"url":"https://github.com/lemire/gobitmapbenchmark","last_synced_at":"2025-10-29T02:30:35.001Z","repository":{"id":30574898,"uuid":"34129874","full_name":"lemire/gobitmapbenchmark","owner":"lemire","description":"A Go project to benchmark various bitmap implementations (this is not a library!)","archived":false,"fork":false,"pushed_at":"2018-04-02T19:45:55.000Z","size":43766,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T21:11:36.710Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemire.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}},"created_at":"2015-04-17T17:18:27.000Z","updated_at":"2024-03-26T11:37:39.000Z","dependencies_parsed_at":"2022-08-30T06:31:55.234Z","dependency_job_id":null,"html_url":"https://github.com/lemire/gobitmapbenchmark","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/lemire%2Fgobitmapbenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fgobitmapbenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fgobitmapbenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Fgobitmapbenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemire","download_url":"https://codeload.github.com/lemire/gobitmapbenchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238758265,"owners_count":19525740,"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-10-11T21:29:06.568Z","updated_at":"2025-10-29T02:30:29.933Z","avatar_url":"https://github.com/lemire.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gobitmapbenchmark\nA Go project to benchmark various bitmap implementations (this is not a library!)\n\n\n\n### Dependencies\n\n  - go get github.com/willf/bitset\n  - go get github.com/RoaringBitmap/roaring\n  - go get github.com/fzandona/goroar\n  - go get github.com/RoaringBitmap/gocroaring\n\n### Usage\n\nFor a comparison between gocroaring and roaring on real data, try:\n\n          go test -bench BenchmarkReal -run -\n\nType\n\n          go test -bench Benchmark -run -\n\n### Sample result\n\n```bash\n$  go test -bench BenchmarkReal -run -\ngocroaring version  0 . 2 . 38\n ======\nread  200  arrays from  realdata/census-income\n\ngoos: linux\ngoarch: amd64\nBenchmarkReal/roaring_creating_realdata/census-income-2         \t      30\t  45028561 ns/op\nBenchmarkReal/gocroaring_creating_realdata/census-income-2      \t     100\t  21941683 ns/op\n\nBenchmarkReal/roaring_clone_realdata/census-income-2            \t    3000\t    494532 ns/op\nBenchmarkReal/gocroaring_clone_realdata/census-income-2         \t    2000\t   1066473 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/census-income-2          \t      20\t  81798450 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/census-income-2       \t       2\t 542632617 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/census-income-2          \t     100\t  12079516 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/census-income-2       \t     200\t   6028955 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/census-income-2     \t    1000\t   2384344 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/census-income-2  \t    1000\t   1365977 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/census-income-2      \t     500\t   3357336 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/census-income-2   \t    1000\t   2104553 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/census-income-2           \t    2000\t    854944 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/census-income-2        \t   10000\t    100659 ns/op\n\n\n ======\nread  200  arrays from  realdata/census-income_srt\n\nBenchmarkReal/roaring_creating_realdata/census-income_srt-2     \t      30\t  41720445 ns/op\nBenchmarkReal/gocroaring_creating_realdata/census-income_srt-2  \t     100\t  20083310 ns/op\n\nBenchmarkReal/roaring_clone_realdata/census-income_srt-2        \t   10000\t    186022 ns/op\nBenchmarkReal/gocroaring_clone_realdata/census-income_srt-2     \t    3000\t    609062 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/census-income_srt-2      \t      10\t 111885653 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/census-income_srt-2   \t       3\t 468990768 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/census-income_srt-2      \t     200\t   6391405 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/census-income_srt-2   \t     500\t   3999921 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/census-income_srt-2 \t    2000\t   1062861 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/census-income_srt-2         \t    2000\t    842367 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/census-income_srt-2             \t     500\t   3330623 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/census-income_srt-2          \t    1000\t   1659235 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/census-income_srt-2                  \t    3000\t    427755 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/census-income_srt-2               \t   10000\t    184545 ns/op\n\n\n ======\nread  200  arrays from  realdata/census1881\n\nBenchmarkReal/roaring_creating_realdata/census1881-2                       \t     200\t   8533858 ns/op\nBenchmarkReal/gocroaring_creating_realdata/census1881-2                    \t     300\t   5703671 ns/op\n\nBenchmarkReal/roaring_clone_realdata/census1881-2                          \t    2000\t    577244 ns/op\nBenchmarkReal/gocroaring_clone_realdata/census1881-2                       \t    2000\t   1129899 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/census1881-2                        \t     200\t   9006506 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/census1881-2                     \t      20\t  77737324 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/census1881-2                        \t    1000\t   1365105 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/census1881-2                     \t    1000\t   1256569 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/census1881-2                   \t   20000\t     71183 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/census1881-2                \t    5000\t    356198 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/census1881-2                    \t    1000\t   1640428 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/census1881-2                 \t    2000\t   2300969 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/census1881-2                         \t    1000\t   1782322 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/census1881-2                      \t    2000\t    787069 ns/op\n\n\n ======\nread  200  arrays from  realdata/census1881_srt\n\nBenchmarkReal/roaring_creating_realdata/census1881_srt-2                   \t     200\t   6782934 ns/op\nBenchmarkReal/gocroaring_creating_realdata/census1881_srt-2                \t     500\t   4005242 ns/op\n\nBenchmarkReal/roaring_clone_realdata/census1881_srt-2                      \t    5000\t    240649 ns/op\nBenchmarkReal/gocroaring_clone_realdata/census1881_srt-2                   \t    3000\t    839457 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/census1881_srt-2                    \t     100\t  12708996 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/census1881_srt-2                 \t      30\t  52689646 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/census1881_srt-2                    \t    2000\t    964374 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/census1881_srt-2                 \t    2000\t    758920 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/census1881_srt-2               \t   30000\t     45061 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/census1881_srt-2            \t    3000\t    410062 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/census1881_srt-2                \t    1000\t   2053263 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/census1881_srt-2             \t    2000\t    932609 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/census1881_srt-2                     \t    2000\t    982225 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/census1881_srt-2                  \t    2000\t    726187 ns/op\n\n\n ======\nread  200  arrays from  realdata/uscensus2000\n\nBenchmarkReal/roaring_creating_realdata/uscensus2000-2                     \t    3000\t    475542 ns/op\nBenchmarkReal/gocroaring_creating_realdata/uscensus2000-2                  \t    2000\t   1299098 ns/op\n\nBenchmarkReal/roaring_clone_realdata/uscensus2000-2                        \t   10000\t    178872 ns/op\nBenchmarkReal/gocroaring_clone_realdata/uscensus2000-2                     \t    3000\t    671385 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/uscensus2000-2                      \t   10000\t    154059 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/uscensus2000-2                   \t    2000\t    669725 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/uscensus2000-2                      \t   30000\t     42051 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/uscensus2000-2                   \t   30000\t     56623 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/uscensus2000-2                 \t  100000\t     17584 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/uscensus2000-2              \t    5000\t    425028 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/uscensus2000-2                  \t    3000\t    475342 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/uscensus2000-2               \t    2000\t    815871 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/uscensus2000-2                       \t    1000\t   1875687 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/uscensus2000-2                    \t    2000\t   1298083 ns/op\n\n\n ======\nread  200  arrays from  realdata/weather_sept_85\n\nBenchmarkReal/roaring_creating_realdata/weather_sept_85-2                  \t      20\t  88877032 ns/op\nBenchmarkReal/gocroaring_creating_realdata/weather_sept_85-2               \t      30\t  45375611 ns/op\n\nBenchmarkReal/roaring_clone_realdata/weather_sept_85-2                     \t    1000\t   1997008 ns/op\nBenchmarkReal/gocroaring_clone_realdata/weather_sept_85-2                  \t     500\t   3450691 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/weather_sept_85-2                   \t      10\t 149616008 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/weather_sept_85-2                \t       1\t1007214720 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/weather_sept_85-2                   \t      50\t  24092363 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/weather_sept_85-2                \t     100\t  13618656 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/weather_sept_85-2              \t     200\t   8969499 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/weather_sept_85-2           \t     500\t   3339475 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/weather_sept_85-2               \t     100\t  11846355 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/weather_sept_85-2            \t     300\t   7185589 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/weather_sept_85-2                    \t     500\t   3921765 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/weather_sept_85-2                 \t    3000\t    574939 ns/op\n\n\n ======\nread  200  arrays from  realdata/weather_sept_85_srt\n\nBenchmarkReal/roaring_creating_realdata/weather_sept_85_srt-2              \t      10\t 110679813 ns/op\nBenchmarkReal/gocroaring_creating_realdata/weather_sept_85_srt-2           \t      30\t  53385555 ns/op\n\nBenchmarkReal/roaring_clone_realdata/weather_sept_85_srt-2                 \t    3000\t    399898 ns/op\nBenchmarkReal/gocroaring_clone_realdata/weather_sept_85_srt-2              \t    3000\t   1194580 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/weather_sept_85_srt-2               \t       5\t 297901757 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/weather_sept_85_srt-2            \t       1\t1239943929 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/weather_sept_85_srt-2               \t     100\t  21274002 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/weather_sept_85_srt-2            \t     100\t  13973855 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/weather_sept_85_srt-2          \t    1000\t   1685735 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/weather_sept_85_srt-2       \t    1000\t   1290481 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/weather_sept_85_srt-2           \t     200\t   7564440 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/weather_sept_85_srt-2        \t    1000\t   2335059 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/weather_sept_85_srt-2                \t    5000\t    347722 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/weather_sept_85_srt-2             \t   10000\t    184497 ns/op\n\n\n ======\nread  200  arrays from  realdata/wikileaks-noquotes\n\nBenchmarkReal/roaring_creating_realdata/wikileaks-noquotes-2               \t     300\t   4995984 ns/op\nBenchmarkReal/gocroaring_creating_realdata/wikileaks-noquotes-2            \t     500\t   3270301 ns/op\n\nBenchmarkReal/roaring_clone_realdata/wikileaks-noquotes-2                  \t    5000\t    240132 ns/op\nBenchmarkReal/gocroaring_clone_realdata/wikileaks-noquotes-2               \t    2000\t    763437 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/wikileaks-noquotes-2                \t     300\t   5567055 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/wikileaks-noquotes-2             \t     100\t  21921597 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/wikileaks-noquotes-2                \t    2000\t    667282 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/wikileaks-noquotes-2             \t    2000\t    725658 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/wikileaks-noquotes-2           \t    3000\t    474999 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/wikileaks-noquotes-2        \t    2000\t    715276 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/wikileaks-noquotes-2            \t     500\t   2280622 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/wikileaks-noquotes-2         \t    2000\t   1207009 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/wikileaks-noquotes-2                 \t    3000\t    349567 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/wikileaks-noquotes-2              \t   10000\t    210815 ns/op\n\n\n ======\nread  200  arrays from  realdata/wikileaks-noquotes_srt\n\nBenchmarkReal/roaring_creating_realdata/wikileaks-noquotes_srt-2           \t     500\t   3447683 ns/op\nBenchmarkReal/gocroaring_creating_realdata/wikileaks-noquotes_srt-2        \t     500\t   3233452 ns/op\n\nBenchmarkReal/roaring_clone_realdata/wikileaks-noquotes_srt-2              \t   10000\t    172535 ns/op\nBenchmarkReal/gocroaring_clone_realdata/wikileaks-noquotes_srt-2           \t    3000\t    759000 ns/op\n\n\nBenchmarkReal/roaring_iterate_realdata/wikileaks-noquotes_srt-2            \t     300\t   5334177 ns/op\nBenchmarkReal/gocroaring_iterate_realdata/wikileaks-noquotes_srt-2         \t     100\t  22504487 ns/op\n\nBenchmarkReal/roaring_toArray_realdata/wikileaks-noquotes_srt-2            \t    3000\t    403184 ns/op\nBenchmarkReal/gocroaring_toArray_realdata/wikileaks-noquotes_srt-2         \t    5000\t    341512 ns/op\n\nBenchmarkReal/roaring_pairwise_AND_realdata/wikileaks-noquotes_srt-2       \t   10000\t    130692 ns/op\nBenchmarkReal/gocroaring_pairwise_AND_realdata/wikileaks-noquotes_srt-2    \t    2000\t    560423 ns/op\n\nBenchmarkReal/roaring_pairwise_OR_realdata/wikileaks-noquotes_srt-2        \t    1000\t   1354152 ns/op\nBenchmarkReal/gocroaring_pairwise_OR_realdata/wikileaks-noquotes_srt-2     \t    2000\t    893540 ns/op\n\nBenchmarkReal/roaring_fastOR_realdata/wikileaks-noquotes_srt-2             \t   10000\t    192324 ns/op\nBenchmarkReal/gocroaring_fastOR_realdata/wikileaks-noquotes_srt-2          \t   10000\t    139796 ns/op\n\n\nPASS\nok  \t_/home/dlemire/CVS/github/gobitmapbenchmark\t254.456s\n```\n\n```bash\n$ go test -bench Benchmark -run -\nBenchmarkIntersectionCRoaring-2                5000               351797 ns/op\nBenchmarkIntersectionRoaring-2                 1000              1734584 ns/op\nBenchmarkIntersectionGoroar-2                  1000              2017873 ns/op\n\nBenchmarkIntersectionDenseCRoaring-2           5000               282847 ns/op\nBenchmarkIntersectionDenseRoaring-2            3000               516019 ns/op\nBenchmarkIntersectionDenseGoroar-2             3000               475892 ns/op\n\nBenchmarkUnionCRoaring-2                       1000              1415311 ns/op\nBenchmarkUnionRoaring-2                        1000              1799285 ns/op\nBenchmarkUnionGoRoar-2                          500              2590627 ns/op\n\nBenchmarkSizeCRoaring-2                    0.2 MB 0.2 MB 0.2 MB 0.2 MB 0.2 MB 0.2 MB 2000000000                0.00 ns/op\nBenchmarkSizeRoaring-2                     0.2 MB 0.2 MB 0.2 MB 0.2 MB 0.2 MB 0.2 MB 2000000000                0.00 ns/op\nBenchmarkSizeGoroar-2                      0.2 MB 0.2 MB 0.2 MB 0.2 MB 0.2 MB 0.2 MB 2000000000                0.00 ns/op\n\nBenchmarkSetRCoaring-2                     10000000                  211 ns/op\nBenchmarkSetRoaring-2                      20000000                   59.7 ns/op\nBenchmarkSetGoroar-2                       20000000                   60.8 ns/op\n\nBenchmarkGetTestCRoaring-2                  5000000                  257 ns/op\nBenchmarkGetTestRoaring-2                  20000000                  115 ns/op\nBenchmarkGetTestGoroar-2                   10000000                  124 ns/op\n\nBenchmarkCountCRoaring-2                   10000000                  163 ns/op\nBenchmarkCountRoaring-2                    30000000                   51.5 ns/op\nBenchmarkCountGoroar-2                     20000000                   69.2 ns/op\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemire%2Fgobitmapbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemire%2Fgobitmapbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemire%2Fgobitmapbenchmark/lists"}