相关的Issue

#I80LKO:Optimize strcasestr

原因(目的、解决的问题等)

musl 中strcasestr函数的性能比较低,通过引入freebsd相关函数来优化musl的性能。

描述(做了什么,变更了什么)

musl 中strcasestr函数的性能比较低,通过引入freebsd相关函数来优化musl的性能。

测试用例(新增、改动、可能影响的功能)

musl原生代码:
输入图片说明

Benchmark Time CPU Iterations UserCounters...

BM_function_Strcasestr/8/0/0 39.5 ns 39.5 ns 17725795 bytes_per_second=193.296M/s
BM_function_Strcasestr/16/0/0 195 ns 195 ns 3607889 bytes_per_second=78.0936M/s
BM_function_Strcasestr/32/0/0 475 ns 475 ns 1484452 bytes_per_second=64.2083M/s
BM_function_Strcasestr/64/0/0 1043 ns 1043 ns 663623 bytes_per_second=58.54M/s
BM_function_Strcasestr/512/0/0 8989 ns 8989 ns 76876 bytes_per_second=54.3218M/s
BM_function_Strcasestr/1024/0/0 18164 ns 18164 ns 38860 bytes_per_second=53.7643M/s
BM_function_Strcasestr/8192/0/0 146395 ns 146392 ns 4761 bytes_per_second=53.3669M/s
BM_function_Strcasestr/16384/0/0 293795 ns 293788 ns 2384 bytes_per_second=53.1847M/s
BM_function_Strcasestr/32768/0/0 583469 ns 583456 ns 1201 bytes_per_second=53.5601M/s
BM_function_Strcasestr/65536/0/0 1185246 ns 1185218 ns 584 bytes_per_second=52.7329M/s
BM_function_Strcasestr/131072/0/0 2348878 ns 2348814 ns 297 bytes_per_second=53.2183M/s
输入图片说明

优化后代码:
输入图片说明

Benchmark Time CPU Iterations UserCounters...

BM_function_Strcasestr/8/0/0 41.8 ns 41.8 ns 16759894 bytes_per_second=182.724M/s
BM_function_Strcasestr/16/0/0 139 ns 139 ns 5060473 bytes_per_second=109.821M/s
BM_function_Strcasestr/32/0/0 322 ns 321 ns 2179292 bytes_per_second=94.9427M/s
BM_function_Strcasestr/64/0/0 688 ns 687 ns 1018429 bytes_per_second=88.7842M/s
BM_function_Strcasestr/512/0/0 5819 ns 5818 ns 120215 bytes_per_second=83.9309M/s
BM_function_Strcasestr/1024/0/0 11718 ns 11715 ns 59856 bytes_per_second=83.3605M/s
BM_function_Strcasestr/8192/0/0 95467 ns 95442 ns 7360 bytes_per_second=81.8561M/s
BM_function_Strcasestr/16384/0/0 192800 ns 191508 ns 3700 bytes_per_second=81.5892M/s
BM_function_Strcasestr/32768/0/0 381732 ns 381608 ns 1854 bytes_per_second=81.8903M/s
BM_function_Strcasestr/65536/0/0 764973 ns 764741 ns 925 bytes_per_second=81.7271M/s
BM_function_Strcasestr/131072/0/0 1517475 ns 1516905 ns 455 bytes_per_second=82.4046M/s
输入图片说明

是否需要同步至release(如:3.0LTS ... )分支?

必须选择一项(在MarkDown模式下用[x]替换[ ]即可勾选对应选项):

  • 是,需要同步的分支:

理由: