LuciferYang commented on PR #37339:
URL: https://github.com/apache/spark/pull/37339#issuecomment-1199053334

   The result of `IteratorSizeBenchmark ` using Scala 2.13 as follows, 
`Utils.getIteratorSize` method slightly slower than `Iterator.size`
   
   ```
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Range iterator size 10:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     0              1       
    0        259.9           3.8       1.0X
   Use Utils.getIteratorSize                             1              2       
    0         72.8          13.7       0.3X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Range iterator size 100:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     2              2       
    0         55.4          18.0       1.0X
   Use Utils.getIteratorSize                             9              9       
    0         11.6          86.5       0.2X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Range iterator size 1000:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     2              2       
    0         54.4          18.4       1.0X
   Use Utils.getIteratorSize                            83             83       
    0          1.2         827.0       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Range iterator size 10000:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     2              2       
    0         54.0          18.5       1.0X
   Use Utils.getIteratorSize                           818            820       
    2          0.1        8181.3       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Range iterator size 30000:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     2              2       
    0         57.6          17.4       1.0X
   Use Utils.getIteratorSize                          2437           2448       
   16          0.0       24367.8       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Seq iterator size 10:                Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     3              4       
    0         30.0          33.4       1.0X
   Use Utils.getIteratorSize                             9             10       
    1         10.8          92.2       0.4X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Seq iterator size 100:               Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     3              4       
    0         28.8          34.7       1.0X
   Use Utils.getIteratorSize                            80             82       
    1          1.3         798.8       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Seq iterator size 1000:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     4              4       
    1         25.1          39.8       1.0X
   Use Utils.getIteratorSize                           751            753       
    2          0.1        7513.1       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Seq iterator size 10000:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     4              4       
    0         25.3          39.5       1.0X
   Use Utils.getIteratorSize                          7659           7676       
   24          0.0       76589.3       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Seq iterator size 30000:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     4              4       
    0         24.8          40.4       1.0X
   Use Utils.getIteratorSize                         23008          23025       
   24          0.0      230080.0       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Array iterator size 10:              Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     1              1       
    0        166.5           6.0       1.0X
   Use Utils.getIteratorSize                             6              7       
    0         15.5          64.7       0.1X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Array iterator size 100:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     0              0       
    0        315.6           3.2       1.0X
   Use Utils.getIteratorSize                            56             56       
    0          1.8         559.3       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Array iterator size 1000:            Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     0              0       
    0        309.1           3.2       1.0X
   Use Utils.getIteratorSize                           613            617       
    2          0.2        6134.1       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Array iterator size 10000:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     0              0       
    0        306.4           3.3       1.0X
   Use Utils.getIteratorSize                          6220           6237       
   25          0.0       62196.7       0.0X
   
   OpenJDK 64-Bit Server VM 1.8.0_342-b07 on Linux 5.15.0-1014-azure
   Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
   Test Array iterator size 30000:           Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Iterator.size                                     0              0       
    0        316.8           3.2       1.0X
   Use Utils.getIteratorSize                         18712          18739       
   39          0.0      187118.4       0.0X
   ```


-- 
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]


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

Reply via email to