[ 
https://issues.apache.org/jira/browse/HADOOP-15033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16256717#comment-16256717
 ] 

Dmitry Chuyko commented on HADOOP-15033:
----------------------------------------

Results on latest JDK 10 on 4 core x86 including native library:

                 java.version = 10-internal
            java.runtime.name = OpenJDK Runtime Environment
         java.runtime.version = 10-internal+0-adhoc.tp.hs10
              java.vm.version = 10-internal+0-adhoc.tp.hs10
               java.vm.vendor = Oracle Corporation
                 java.vm.name = OpenJDK 64-Bit Server VM
java.vm.specification.version = 10
   java.specification.version = 10
                      os.arch = amd64
                      os.name = Linux
                   os.version = 4.13.0-16-generic
Data Length = 64 MB
Trials      = 5

Direct Buffer Performance Table (bpc: byte-per-crc in MB/sec; #T: #Theads)
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|    32 |  1 |     540.5 |     921.7 |  70.5% |     644.0 | -30.1% |      662.5 
|   2.9% |    1535.3 | 131.7% |    8598.1 | 460.0% |
|    32 |  2 |     346.0 |     489.6 |  41.5% |     325.3 | -33.6% |      303.2 
|  -6.8% |     898.0 | 196.2% |    4720.6 | 425.7% |
|    32 |  4 |     226.8 |     384.1 |  69.3% |     238.6 | -37.9% |      242.5 
|   1.6% |     731.9 | 201.9% |    3838.0 | 424.4% |
|    32 |  8 |     104.1 |     213.6 | 105.1% |     147.6 | -30.9% |      141.9 
|  -3.9% |     386.5 | 172.4% |    2283.9 | 490.9% |
|    32 | 16 |      70.0 |     110.1 |  57.1% |      77.6 | -29.5% |       74.9 
|  -3.5% |     223.6 | 198.6% |    1657.4 | 641.1% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|    64 |  1 |     828.0 |    1266.5 |  53.0% |     876.1 | -30.8% |      833.9 
|  -4.8% |    1592.7 |  91.0% |   10217.4 | 541.5% |
|    64 |  2 |     549.2 |     753.1 |  37.1% |     420.2 | -44.2% |      438.2 
|   4.3% |    1070.3 | 144.3% |    6534.0 | 510.5% |
|    64 |  4 |     384.0 |     627.6 |  63.5% |     348.8 | -44.4% |      365.9 
|   4.9% |     854.0 | 133.4% |    4762.2 | 457.6% |
|    64 |  8 |     226.6 |     317.2 |  40.0% |     195.5 | -38.4% |      218.6 
|  11.8% |     488.6 | 123.5% |    2760.0 | 464.9% |
|    64 | 16 |     113.7 |     176.1 |  54.9% |     113.8 | -35.4% |      125.4 
|  10.2% |     255.9 | 104.1% |    2556.6 | 899.1% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|   128 |  1 |    1146.1 |    2241.7 |  95.6% |    1080.8 | -51.8% |     1008.1 
|  -6.7% |    1626.2 |  61.3% |   11525.3 | 608.7% |
|   128 |  2 |     792.6 |    1248.3 |  57.5% |     536.0 | -57.1% |      786.1 
|  46.7% |    1360.0 |  73.0% |    7295.6 | 436.5% |
|   128 |  4 |     602.7 |    1074.4 |  78.3% |     456.8 | -57.5% |      437.4 
|  -4.2% |     927.7 | 112.1% |    6405.6 | 590.5% |
|   128 |  8 |     327.6 |     607.0 |  85.3% |     265.6 | -56.2% |      245.3 
|  -7.6% |     499.6 | 103.7% |    3545.9 | 609.8% |
|   128 | 16 |     176.2 |     295.0 |  67.5% |     150.7 | -48.9% |      132.4 
| -12.1% |     287.0 | 116.7% |    2865.1 | 898.3% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|   256 |  1 |    1647.9 |    2802.3 |  70.0% |    1240.3 | -55.7% |     1090.2 
| -12.1% |    1525.0 |  39.9% |   11362.2 | 645.0% |
|   256 |  2 |    1021.1 |    1621.4 |  58.8% |     642.2 | -60.4% |      616.8 
|  -4.0% |    1241.3 | 101.3% |    7501.2 | 504.3% |
|   256 |  4 |     879.3 |    1368.5 |  55.6% |     494.9 | -63.8% |      497.2 
|   0.5% |    1001.9 | 101.5% |    5424.7 | 441.4% |
|   256 |  8 |     448.7 |     705.8 |  57.3% |     302.1 | -57.2% |      266.1 
| -11.9% |     529.9 |  99.1% |    4327.7 | 716.7% |
|   256 | 16 |     245.4 |     477.3 |  94.5% |     147.3 | -69.1% |      152.9 
|   3.8% |     325.5 | 113.0% |    2456.4 | 654.6% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|   512 |  1 |    1872.1 |    2954.9 |  57.8% |    1307.1 | -55.8% |     1102.0 
| -15.7% |    1586.3 |  44.0% |    9733.8 | 513.6% |
|   512 |  2 |    1237.1 |    1940.5 |  56.9% |     707.8 | -63.5% |      664.8 
|  -6.1% |    1278.6 |  92.3% |    7194.6 | 462.7% |
|   512 |  4 |     997.9 |    1619.2 |  62.3% |     610.2 | -62.3% |      553.2 
|  -9.4% |    1035.6 |  87.2% |    5029.4 | 385.7% |
|   512 |  8 |     554.1 |     974.3 |  75.8% |     329.6 | -66.2% |      299.1 
|  -9.3% |     596.8 |  99.5% |    4345.3 | 628.1% |
|   512 | 16 |     327.0 |     578.3 |  76.9% |     186.9 | -67.7% |      178.8 
|  -4.4% |     336.4 |  88.2% |    3274.8 | 873.4% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|  1024 |  1 |    1898.0 |    4200.0 | 121.3% |    1269.3 | -69.8% |     1139.9 
| -10.2% |    1594.5 |  39.9% |    8967.9 | 462.4% |
|  1024 |  2 |    1318.7 |    3191.4 | 142.0% |     735.3 | -77.0% |      681.7 
|  -7.3% |    1270.1 |  86.3% |    6518.3 | 413.2% |
|  1024 |  4 |    1084.4 |    2557.6 | 135.9% |     592.4 | -76.8% |      464.1 
| -21.7% |    1020.1 | 119.8% |    4907.7 | 381.1% |
|  1024 |  8 |     569.0 |    1536.8 | 170.1% |     340.5 | -77.8% |      319.6 
|  -6.1% |     618.7 |  93.6% |    3556.5 | 474.8% |
|  1024 | 16 |     373.3 |    1075.6 | 188.1% |     211.0 | -80.4% |      173.1 
| -18.0% |     316.9 |  83.1% |    3075.3 | 870.5% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|  2048 |  1 |    1941.4 |    6284.6 | 223.7% |    1177.0 | -81.3% |     1117.9 
|  -5.0% |    1567.7 |  40.2% |   11286.2 | 619.9% |
|  2048 |  2 |    1372.7 |    4693.6 | 241.9% |     752.3 | -84.0% |      697.5 
|  -7.3% |    1284.3 |  84.1% |    6847.4 | 433.1% |
|  2048 |  4 |    1154.3 |    3973.6 | 244.3% |     610.1 | -84.6% |      579.9 
|  -5.0% |    1040.5 |  79.4% |    5185.0 | 398.3% |
|  2048 |  8 |     682.8 |    2454.2 | 259.5% |     317.5 | -87.1% |      294.9 
|  -7.1% |     523.8 |  77.6% |    3465.7 | 561.6% |
|  2048 | 16 |     374.2 |    1632.7 | 336.4% |     218.3 | -86.6% |      158.4 
| -27.5% |     321.5 | 103.0% |    2287.9 | 611.6% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|  4096 |  1 |    2000.7 |    6184.3 | 209.1% |    1319.8 | -78.7% |     1153.9 
| -12.6% |    1569.4 |  36.0% |   14192.6 | 804.3% |
|  4096 |  2 |    1406.0 |    4810.7 | 242.2% |     765.6 | -84.1% |      845.3 
|  10.4% |    1372.4 |  62.4% |    7586.7 | 452.8% |
|  4096 |  4 |    1286.1 |    3817.8 | 196.9% |     591.7 | -84.5% |      577.7 
|  -2.4% |    1060.3 |  83.6% |    4602.5 | 334.1% |
|  4096 |  8 |     640.3 |    2468.6 | 285.5% |     411.6 | -83.3% |      367.4 
| -10.7% |     717.8 |  95.4% |    4363.7 | 507.9% |
|  4096 | 16 |     392.5 |    1511.6 | 285.2% |     208.1 | -86.2% |      189.6 
|  -8.9% |     355.2 |  87.3% |    2104.0 | 492.4% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
|  8192 |  1 |    2262.1 |    7183.6 | 217.6% |    1416.8 | -80.3% |     1237.3 
| -12.7% |    1634.3 |  32.1% |   13987.3 | 755.9% |
|  8192 |  2 |    2101.0 |    6417.1 | 205.4% |    1308.4 | -79.6% |     1123.2 
| -14.2% |    1564.0 |  39.2% |    9135.9 | 484.1% |
|  8192 |  4 |    1364.5 |    4136.8 | 203.2% |     745.8 | -82.0% |      696.1 
|  -6.7% |    1266.3 |  81.9% |    5036.4 | 297.7% |
|  8192 |  8 |     888.1 |    2815.2 | 217.0% |     452.8 | -83.9% |      366.8 
| -19.0% |     703.0 |  91.7% |    3449.4 | 390.7% |
|  8192 | 16 |     415.2 |    1726.8 | 315.9% |     204.7 | -88.1% |      183.7 
| -10.2% |     378.6 | 106.1% |    2575.1 | 580.1% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
| 16384 |  1 |    2228.8 |    7937.4 | 256.1% |    1360.4 | -82.9% |     1193.6 
| -12.3% |    1658.1 |  38.9% |   13390.5 | 707.6% |
| 16384 |  2 |    2079.8 |    6250.7 | 200.5% |    1188.1 | -81.0% |     1132.3 
|  -4.7% |    1557.4 |  37.5% |    9151.5 | 487.6% |
| 16384 |  4 |    1386.2 |    4004.0 | 188.8% |     753.8 | -81.2% |      693.2 
|  -8.0% |    1266.4 |  82.7% |    5427.0 | 328.5% |
| 16384 |  8 |     840.8 |    2602.3 | 209.5% |     406.4 | -84.4% |      369.6 
|  -9.1% |     712.6 |  92.8% |    2905.2 | 307.7% |
| 16384 | 16 |     411.7 |    1560.5 | 279.1% |     202.2 | -87.0% |      189.7 
|  -6.2% |     343.6 |  81.1% |    1929.8 | 461.6% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
| 32768 |  1 |    2006.7 |    6119.1 | 204.9% |    1256.6 | -79.5% |     1119.9 
| -10.9% |    1511.2 |  34.9% |   12599.6 | 733.7% |
| 32768 |  2 |    2028.2 |    6277.4 | 209.5% |    1270.2 | -79.8% |     1147.6 
|  -9.7% |    1569.7 |  36.8% |    9203.5 | 486.3% |
| 32768 |  4 |    1385.8 |    3964.2 | 186.1% |     757.0 | -80.9% |      690.8 
|  -8.7% |    1265.1 |  83.1% |    5282.2 | 317.5% |
| 32768 |  8 |     841.7 |    2716.0 | 222.7% |     449.3 | -83.5% |      360.9 
| -19.7% |     759.7 | 110.5% |    2928.3 | 285.4% |
| 32768 | 16 |     421.1 |    1627.8 | 286.6% |     208.1 | -87.2% |      188.5 
|  -9.4% |     370.6 |  96.7% |    2658.2 | 617.2% |
|  bpc  | #T ||      Zip ||     ZipC | % diff || PureJava | % diff || PureJavaC 
| % diff ||   Native | % diff ||  NativeC | % diff |
| 65536 |  1 |    2126.1 |    7479.8 | 251.8% |    1396.5 | -81.3% |     1218.2 
| -12.8% |    1672.4 |  37.3% |   14690.7 | 778.4% |
| 65536 |  2 |    2074.1 |    6388.6 | 208.0% |    1330.3 | -79.2% |     1148.3 
| -13.7% |    1578.4 |  37.5% |    9262.9 | 486.9% |
| 65536 |  4 |    1416.6 |    3926.3 | 177.2% |     758.9 | -80.7% |      701.4 
|  -7.6% |    1223.3 |  74.4% |    5554.2 | 354.0% |
| 65536 |  8 |     814.1 |    2571.6 | 215.9% |     410.3 | -84.0% |      367.2 
| -10.5% |     753.4 | 105.2% |    5090.8 | 575.7% |
| 65536 | 16 |     488.5 |    1676.2 | 243.1% |     224.0 | -86.6% |      198.8 
| -11.3% |     355.3 |  78.8% |    2549.3 | 617.5% |

> Use java.util.zip.CRC32C for Java 9 and above
> ---------------------------------------------
>
>                 Key: HADOOP-15033
>                 URL: https://issues.apache.org/jira/browse/HADOOP-15033
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: performance, util
>    Affects Versions: 3.0.0
>            Reporter: Dmitry Chuyko
>
> java.util.zip.CRC32C implementation is available since Java 9.
> https://docs.oracle.com/javase/9/docs/api/java/util/zip/CRC32C.html
> Platform specific assembler intrinsics make it more effective than any pure 
> Java implementation.
> Hadoop is compiled against Java 8 but class constructor may be accessible 
> with method handle on 9 to instances implementing Checksum in runtime.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to