luoluoyuyu opened a new pull request, #575: URL: https://github.com/apache/tsfile/pull/575
Optimized: O(1) bulk bit ops, flat 2–3 ns. Unoptimized (Native): bit-by-bit mark/unmark, O(n) time, ≈1.8 µs at 1024 bits. Benchmark (len) Mode Cnt Score Error Units BitMapBenchmark.markRange 1 avgt 5 2.087 ± 0.254 ns/op BitMapBenchmark.markRange 2 avgt 5 2.095 ± 0.256 ns/op BitMapBenchmark.markRange 4 avgt 5 2.115 ± 0.162 ns/op BitMapBenchmark.markRange 8 avgt 5 2.103 ± 0.110 ns/op BitMapBenchmark.markRange 16 avgt 5 2.195 ± 0.025 ns/op BitMapBenchmark.markRange 32 avgt 5 2.406 ± 0.009 ns/op BitMapBenchmark.markRange 64 avgt 5 2.412 ± 0.019 ns/op BitMapBenchmark.markRange 128 avgt 5 3.207 ± 0.011 ns/op BitMapBenchmark.markRange 256 avgt 5 3.221 ± 0.039 ns/op BitMapBenchmark.markRange 512 avgt 5 3.218 ± 0.011 ns/op BitMapBenchmark.markRange 1024 avgt 5 3.363 ± 0.051 ns/op BitMapBenchmark.markRangeNative 1 avgt 5 1.918 ± 0.016 ns/op BitMapBenchmark.markRangeNative 2 avgt 5 3.773 ± 0.231 ns/op BitMapBenchmark.markRangeNative 4 avgt 5 7.376 ± 0.337 ns/op BitMapBenchmark.markRangeNative 8 avgt 5 14.839 ± 0.958 ns/op BitMapBenchmark.markRangeNative 16 avgt 5 15.782 ± 0.265 ns/op BitMapBenchmark.markRangeNative 32 avgt 5 35.136 ± 2.760 ns/op BitMapBenchmark.markRangeNative 64 avgt 5 74.027 ± 1.073 ns/op BitMapBenchmark.markRangeNative 128 avgt 5 183.887 ± 5.462 ns/op BitMapBenchmark.markRangeNative 256 avgt 5 421.424 ± 45.238 ns/op BitMapBenchmark.markRangeNative 512 avgt 5 858.598 ± 61.117 ns/op BitMapBenchmark.markRangeNative 1024 avgt 5 1840.542 ± 237.045 ns/op BitMapBenchmark.merge 1 avgt 5 2.360 ± 0.107 ns/op BitMapBenchmark.merge 2 avgt 5 2.358 ± 0.038 ns/op BitMapBenchmark.merge 4 avgt 5 2.345 ± 0.001 ns/op BitMapBenchmark.merge 8 avgt 5 3.093 ± 0.031 ns/op BitMapBenchmark.merge 16 avgt 5 3.122 ± 0.212 ns/op BitMapBenchmark.merge 32 avgt 5 5.627 ± 0.059 ns/op BitMapBenchmark.merge 64 avgt 5 7.969 ± 0.038 ns/op BitMapBenchmark.merge 128 avgt 5 15.477 ± 0.399 ns/op BitMapBenchmark.merge 256 avgt 5 30.616 ± 0.332 ns/op BitMapBenchmark.merge 512 avgt 5 66.437 ± 0.941 ns/op BitMapBenchmark.merge 1024 avgt 5 125.634 ± 2.399 ns/op BitMapBenchmark.mergeNative 1 avgt 5 1.011 ± 0.103 ns/op BitMapBenchmark.mergeNative 2 avgt 5 3.936 ± 0.444 ns/op BitMapBenchmark.mergeNative 4 avgt 5 4.848 ± 0.037 ns/op BitMapBenchmark.mergeNative 8 avgt 5 10.098 ± 0.711 ns/op BitMapBenchmark.mergeNative 16 avgt 5 16.676 ± 1.106 ns/op BitMapBenchmark.mergeNative 32 avgt 5 48.986 ± 2.203 ns/op BitMapBenchmark.mergeNative 64 avgt 5 87.075 ± 9.431 ns/op BitMapBenchmark.mergeNative 128 avgt 5 147.201 ± 20.776 ns/op BitMapBenchmark.mergeNative 256 avgt 5 301.997 ± 27.788 ns/op BitMapBenchmark.mergeNative 512 avgt 5 755.467 ± 9.501 ns/op BitMapBenchmark.mergeNative 1024 avgt 5 1064.001 ± 29.296 ns/op BitMapBenchmark.unmarkRange 1 avgt 5 2.174 ± 0.008 ns/op BitMapBenchmark.unmarkRange 2 avgt 5 2.173 ± 0.008 ns/op BitMapBenchmark.unmarkRange 4 avgt 5 2.173 ± 0.007 ns/op BitMapBenchmark.unmarkRange 8 avgt 5 2.184 ± 0.032 ns/op BitMapBenchmark.unmarkRange 16 avgt 5 2.187 ± 0.004 ns/op BitMapBenchmark.unmarkRange 32 avgt 5 2.558 ± 0.086 ns/op BitMapBenchmark.unmarkRange 64 avgt 5 2.410 ± 0.051 ns/op BitMapBenchmark.unmarkRange 128 avgt 5 2.869 ± 0.099 ns/op BitMapBenchmark.unmarkRange 256 avgt 5 3.240 ± 0.064 ns/op BitMapBenchmark.unmarkRange 512 avgt 5 3.405 ± 0.811 ns/op BitMapBenchmark.unmarkRange 1024 avgt 5 3.349 ± 0.037 ns/op BitMapBenchmark.unmarkRangeNative 1 avgt 5 1.925 ± 0.012 ns/op BitMapBenchmark.unmarkRangeNative 2 avgt 5 3.819 ± 0.162 ns/op BitMapBenchmark.unmarkRangeNative 4 avgt 5 7.940 ± 1.119 ns/op BitMapBenchmark.unmarkRangeNative 8 avgt 5 11.440 ± 0.219 ns/op BitMapBenchmark.unmarkRangeNative 16 avgt 5 16.360 ± 1.900 ns/op BitMapBenchmark.unmarkRangeNative 32 avgt 5 35.143 ± 0.991 ns/op BitMapBenchmark.unmarkRangeNative 64 avgt 5 75.257 ± 0.285 ns/op BitMapBenchmark.unmarkRangeNative 128 avgt 5 197.207 ± 5.872 ns/op BitMapBenchmark.unmarkRangeNative 256 avgt 5 431.431 ± 14.840 ns/op BitMapBenchmark.unmarkRangeNative 512 avgt 5 412.999 ± 51.569 ns/op BitMapBenchmark.unmarkRangeNative 1024 avgt 5 1821.802 ± 114.809 ns/op -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
