On Mon, 12 Jul 2021 09:14:25 GMT, Wang Huang <whu...@openjdk.org> wrote:

>> Dear all, 
>>     Can you do me a favor to review this patch. This patch use `ldp` to 
>> implement String.compareTo.
>>    
>> * We add a JMH test case 
>> * Here is the result of this test case
>>  
>> Benchmark                           |(size)| Mode| Cnt|Score | Error  |Units 
>> ---------------------------------|------|-----|----|------|--------|-----
>> StringCompare.compareLL       |  64  | avgt| 5  |7.992 | ±   0.005|us/op
>> StringCompare.compareLL       |  72  | avgt| 5  |15.029| ±   0.006|us/op
>> StringCompare.compareLL       |  80  | avgt| 5  |14.655| ±   0.011|us/op
>> StringCompare.compareLL       |  91  | avgt| 5  |16.363| ±   0.12 |us/op
>> StringCompare.compareLL       |  101 | avgt| 5  |16.966| ±   0.007|us/op
>> StringCompare.compareLL       |  121 | avgt| 5  |19.276| ±   0.006|us/op
>> StringCompare.compareLL       |  181 | avgt| 5  |19.002| ±   0.417|us/op
>> StringCompare.compareLL       |  256 | avgt| 5  |24.707| ±   0.041|us/op
>> StringCompare.compareLLWithLdp|  64  | avgt| 5  |8.001       | ±     
>> 0.121|us/op
>> StringCompare.compareLLWithLdp|  72  | avgt| 5  |11.573| ±   0.003|us/op
>> StringCompare.compareLLWithLdp|  80  | avgt| 5  |6.861 | ±   0.004|us/op
>> StringCompare.compareLLWithLdp|  91  | avgt| 5  |12.774| ±   0.201|us/op
>> StringCompare.compareLLWithLdp|  101 | avgt| 5  |8.691 | ±   0.004|us/op
>> StringCompare.compareLLWithLdp|  121 | avgt| 5  |11.091| ±   1.342|us/op
>> StringCompare.compareLLWithLdp|  181 | avgt| 5  |14.64 | ±   0.581|us/op
>> StringCompare.compareLLWithLdp|  256 | avgt| 5  |25.879| ±   1.775|us/op
>> StringCompare.compareUU       |  64  | avgt| 5  |13.476| ±   0.01 |us/op
>> StringCompare.compareUU       |  72  | avgt| 5  |15.078| ±   0.006|us/op
>> StringCompare.compareUU       |  80  | avgt| 5  |23.512| ±   0.011|us/op
>> StringCompare.compareUU       |  91  | avgt| 5  |24.284| ±   0.008|us/op
>> StringCompare.compareUU       |  101 | avgt| 5  |20.707| ±   0.017|us/op
>> StringCompare.compareUU       |  121 | avgt| 5  |29.302| ±   0.011|us/op
>> StringCompare.compareUU       |  181 | avgt| 5  |39.31       | ±     
>> 0.016|us/op
>> StringCompare.compareUU       |  256 | avgt| 5  |54.592| ±   0.392|us/op
>> StringCompare.compareUUWithLdp|  64  | avgt| 5  |16.389| ±   0.008|us/op
>> StringCompare.compareUUWithLdp|  72  | avgt| 5  |10.71 | ±   0.158|us/op
>> StringCompare.compareUUWithLdp|  80  | avgt| 5  |11.488| ±   0.024|us/op
>> StringCompare.compareUUWithLdp|  91  | avgt| 5  |13.412| ±   0.006|us/op
>> StringCompare.compareUUWithLdp|  101 | avgt| 5  |16.245| ±   0.434|us/op
>> StringCompare.compareUUWithLdp|  121 | avgt| 5  |16.597| ±   0.016|us/op
>> StringCompare.compareUUWithLdp|  181 | avgt| 5  |27.373| ±   0.017|us/op
>> StringCompare.compareUUWithLdp|  256 | avgt| 5  |41.74 | ±   3.5      |us/op
>> 
>> From this table, we can see that in most cases, our patch is better than old 
>> one.
>> 
>> Thank you for your review. Any suggestions are welcome.
>
> Wang Huang has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   draft of refactor

Two machines to compare here, Apple M1 and ThunderX2:


Benchmark                                       (diff_pos)  (size)  Mode  Cnt  
Score   Error  Units
StringCompare.compareLLDiffStrings                       7     128  avgt    3  
2.194 ± 0.001  us/op
StringCompare.compareLLDiffStrings                      15     128  avgt    3  
2.195 ± 0.018  us/op
StringCompare.compareLLDiffStrings                      31     128  avgt    3  
2.508 ± 0.003  us/op
StringCompare.compareLLDiffStrings                      47     128  avgt    3  
2.821 ± 0.001  us/op
StringCompare.compareLLDiffStrings                      63     128  avgt    3  
3.446 ± 0.003  us/op
StringCompare.compareLLDiffStringsWithLdp                7     128  avgt    3  
2.194 ± 0.001  us/op
StringCompare.compareLLDiffStringsWithLdp               15     128  avgt    3  
2.195 ± 0.001  us/op
StringCompare.compareLLDiffStringsWithLdp               31     128  avgt    3  
2.508 ± 0.001  us/op
StringCompare.compareLLDiffStringsWithLdp               47     128  avgt    3  
2.510 ± 0.006  us/op
StringCompare.compareLLDiffStringsWithLdp               63     128  avgt    3  
2.824 ± 0.003  us/op
StringCompare.compareLLDiffStringsWithRefactor           7     128  avgt    3  
1.882 ± 0.018  us/op
StringCompare.compareLLDiffStringsWithRefactor          15     128  avgt    3  
2.019 ± 0.002  us/op
StringCompare.compareLLDiffStringsWithRefactor          31     128  avgt    3  
2.355 ± 0.003  us/op
StringCompare.compareLLDiffStringsWithRefactor          47     128  avgt    3  
2.821 ± 0.010  us/op
StringCompare.compareLLDiffStringsWithRefactor          63     128  avgt    3  
3.135 ± 0.002  us/op


Benchmark                                       (diff_pos)  (size)  Mode  Cnt   
Score   Error  Units
StringCompare.compareLLDiffStrings                       7     128  avgt    3   
6.014 ± 0.016  us/op
StringCompare.compareLLDiffStrings                      15     128  avgt    3   
6.431 ± 0.030  us/op
StringCompare.compareLLDiffStrings                      31     128  avgt    3   
7.214 ± 0.012  us/op
StringCompare.compareLLDiffStrings                      47     128  avgt    3   
8.816 ± 0.011  us/op
StringCompare.compareLLDiffStrings                      63     128  avgt    3  
10.283 ± 0.033  us/op
StringCompare.compareLLDiffStringsWithLdp                7     128  avgt    3   
5.214 ± 0.002  us/op
StringCompare.compareLLDiffStringsWithLdp               15     128  avgt    3   
6.899 ± 0.359  us/op
StringCompare.compareLLDiffStringsWithLdp               31     128  avgt    3   
7.309 ± 0.038  us/op
StringCompare.compareLLDiffStringsWithLdp               47     128  avgt    3   
7.723 ± 0.080  us/op
StringCompare.compareLLDiffStringsWithLdp               63     128  avgt    3   
9.822 ± 0.103  us/op
StringCompare.compareLLDiffStringsWithRefactor           7     128  avgt    3   
4.814 ± 0.002  us/op
StringCompare.compareLLDiffStringsWithRefactor          15     128  avgt    3   
8.395 ± 0.259  us/op
StringCompare.compareLLDiffStringsWithRefactor          31     128  avgt    3   
7.615 ± 0.004  us/op
StringCompare.compareLLDiffStringsWithRefactor          47     128  avgt    3   
8.817 ± 0.013  us/op
StringCompare.compareLLDiffStringsWithRefactor          63     128  avgt    3  
10.413 ± 0.002  us/op

-------------

PR: https://git.openjdk.java.net/jdk/pull/4722

Reply via email to