You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@tsfile.apache.org by "luoluoyuyu (via GitHub)" <gi...@apache.org> on 2025/08/22 07:26:50 UTC

[PR] feat: add markRange / unmarkRange / merge for high-performance bit manipulation [tsfile]

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: notifications-unsubscribe@tsfile.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] feat: add markRange / unmarkRange / merge for high-performance bit manipulation [tsfile]

Posted by "jt2594838 (via GitHub)" <gi...@apache.org>.
jt2594838 merged PR #575:
URL: https://github.com/apache/tsfile/pull/575


-- 
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: notifications-unsubscribe@tsfile.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] feat: add markRange / unmarkRange / merge for high-performance bit manipulation [tsfile]

Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on PR #575:
URL: https://github.com/apache/tsfile/pull/575#issuecomment-3213601289

   MBGA!


-- 
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: notifications-unsubscribe@tsfile.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org