Git Product home page Git Product logo

factorial-benchmarks's Introduction

Factorial-benchmarks

Some algorithms to calculate factorial with benchmarks

Inspired by and based on:

Uses JML to do the benchmarking.

How to run

mvn clean install
java -jar target/benchmarks.jar

Benchmark result:

Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz

Benchmark                                (n)  Mode  Cnt        Score       Error  Units
MyBenchmark.testFactShift                 10  avgt   20        0.455 ±     0.008  us/op
MyBenchmark.testFactShift                100  avgt   20        8.049 ±     0.350  us/op
MyBenchmark.testFactShift               1000  avgt   20      518.921 ±     6.504  us/op
MyBenchmark.testFactShift              10000  avgt   20    67668.330 ±  2790.546  us/op
MyBenchmark.testFactShift              50000  avgt   20  2036408.998 ± 69713.327  us/op
MyBenchmark.testFactShiftTree             10  avgt   20        0.425 ±     0.007  us/op
MyBenchmark.testFactShiftTree            100  avgt   20        6.793 ±     0.315  us/op
MyBenchmark.testFactShiftTree           1000  avgt   20      113.184 ±     4.826  us/op
MyBenchmark.testFactShiftTree          10000  avgt   20     4900.953 ±    50.575  us/op
MyBenchmark.testFactShiftTree          50000  avgt   20    74184.759 ±   338.565  us/op
MyBenchmark.testFactShiftTreeForkJoin     10  avgt   20       17.096 ±     2.125  us/op
MyBenchmark.testFactShiftTreeForkJoin    100  avgt   20       26.018 ±     0.947  us/op
MyBenchmark.testFactShiftTreeForkJoin   1000  avgt   20      148.221 ±    14.371  us/op
MyBenchmark.testFactShiftTreeForkJoin  10000  avgt   20     4070.271 ±   101.217  us/op
MyBenchmark.testFactShiftTreeForkJoin  50000  avgt   20    61906.265 ±  6348.420  us/op
MyBenchmark.testFactTree                  10  avgt   20        0.256 ±     0.006  us/op
MyBenchmark.testFactTree                 100  avgt   20        4.796 ±     0.023  us/op
MyBenchmark.testFactTree                1000  avgt   20       89.093 ±     1.888  us/op
MyBenchmark.testFactTree               10000  avgt   20     5256.260 ±    24.035  us/op
MyBenchmark.testFactTree               50000  avgt   20    80814.276 ±  1662.423  us/op
MyBenchmark.testFourBlocks                10  avgt   20        0.596 ±     0.020  us/op
MyBenchmark.testFourBlocks               100  avgt   20        7.389 ±     0.054  us/op
MyBenchmark.testFourBlocks              1000  avgt   20      220.170 ±     9.332  us/op
MyBenchmark.testFourBlocks             10000  avgt   20    23732.874 ±   587.253  us/op
MyBenchmark.testFourBlocks             50000  avgt   20   604617.590 ± 16935.473  us/op
MyBenchmark.testNaive                     10  avgt   20        0.431 ±     0.009  us/op
MyBenchmark.testNaive                    100  avgt   20        8.707 ±     0.073  us/op
MyBenchmark.testNaive                   1000  avgt   20      582.665 ±     4.016  us/op
MyBenchmark.testNaive                  10000  avgt   20    71488.714 ±   302.861  us/op
MyBenchmark.testNaive                  50000  avgt   20  2185448.852 ± 55155.377  us/op
MyBenchmark.testStreamed                  10  avgt   20        0.481 ±     0.011  us/op
MyBenchmark.testStreamed                 100  avgt   20        9.096 ±     0.377  us/op
MyBenchmark.testStreamed                1000  avgt   20      603.399 ±    26.494  us/op
MyBenchmark.testStreamed               10000  avgt   20    69546.260 ±  2495.295  us/op
MyBenchmark.testStreamed               50000  avgt   20  2034699.821 ± 51516.068  us/op
MyBenchmark.testStreamedParallel          10  avgt   20        4.165 ±     0.131  us/op
MyBenchmark.testStreamedParallel         100  avgt   20       15.012 ±     1.793  us/op
MyBenchmark.testStreamedParallel        1000  avgt   20      152.454 ±     2.113  us/op
MyBenchmark.testStreamedParallel       10000  avgt   20    13391.956 ±  1693.633  us/op
MyBenchmark.testStreamedParallel       50000  avgt   20   298984.321 ± 25689.383  us/op
MyBenchmark.testStreamedParallelShift     10  avgt   20        4.507 ±     0.188  us/op
MyBenchmark.testStreamedParallelShift    100  avgt   20       15.272 ±     0.594  us/op
MyBenchmark.testStreamedParallelShift   1000  avgt   20      143.560 ±    14.585  us/op
MyBenchmark.testStreamedParallelShift  10000  avgt   20    11418.348 ±   184.639  us/op
MyBenchmark.testStreamedParallelShift  50000  avgt   20   301986.118 ± 35801.010  us/op
MyBenchmark.testStreamedShift             10  avgt   20        0.574 ±     0.013  us/op
MyBenchmark.testStreamedShift            100  avgt   20        8.736 ±     0.508  us/op
MyBenchmark.testStreamedShift           1000  avgt   20      512.447 ±     2.588  us/op
MyBenchmark.testStreamedShift          10000  avgt   20    65010.984 ±  3181.843  us/op
MyBenchmark.testStreamedShift          50000  avgt   20  1882692.405 ± 11696.611  us/op

Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

Benchmark                                (n)  Mode  Cnt       Score       Error  Units
MyBenchmark.testFactFactorization         10  avgt   20       0,250 ±     0,007  us/op
MyBenchmark.testFactFactorization        100  avgt   20       2,242 ±     0,074  us/op
MyBenchmark.testFactFactorization       1000  avgt   20      78,634 ±     2,613  us/op
MyBenchmark.testFactFactorization      10000  avgt   20    9201,430 ±   219,746  us/op
MyBenchmark.testFactFactorization      50000  avgt   20  280531,670 ±  7423,222  us/op
MyBenchmark.testFactShift                 10  avgt   20       0,244 ±     0,007  us/op
MyBenchmark.testFactShift                100  avgt   20       3,606 ±     0,114  us/op
MyBenchmark.testFactShift               1000  avgt   20     156,331 ±     6,954  us/op
MyBenchmark.testFactShift              10000  avgt   20   19168,038 ±   706,043  us/op
MyBenchmark.testFactShift              50000  avgt   20  522962,954 ± 16136,208  us/op
MyBenchmark.testFactShiftTree             10  avgt   20       0,262 ±     0,007  us/op
MyBenchmark.testFactShiftTree            100  avgt   20       3,870 ±     0,190  us/op
MyBenchmark.testFactShiftTree           1000  avgt   20      50,096 ±     2,552  us/op
MyBenchmark.testFactShiftTree          10000  avgt   20    1760,467 ±    83,710  us/op
MyBenchmark.testFactShiftTree          50000  avgt   20   24382,022 ±   537,654  us/op
MyBenchmark.testFactShiftTreeForkJoin     10  avgt   20      16,463 ±     0,160  us/op
MyBenchmark.testFactShiftTreeForkJoin    100  avgt   20      31,198 ±     0,162  us/op
MyBenchmark.testFactShiftTreeForkJoin   1000  avgt   20      65,820 ±     1,556  us/op
MyBenchmark.testFactShiftTreeForkJoin  10000  avgt   20    1171,646 ±    32,452  us/op
MyBenchmark.testFactShiftTreeForkJoin  50000  avgt   20   14627,024 ±   357,196  us/op
MyBenchmark.testFactTree                  10  avgt   20       0,147 ±     0,004  us/op
MyBenchmark.testFactTree                 100  avgt   20       2,540 ±     0,078  us/op
MyBenchmark.testFactTree                1000  avgt   20      33,496 ±     1,409  us/op
MyBenchmark.testFactTree               10000  avgt   20    1823,560 ±    88,732  us/op
MyBenchmark.testFactTree               50000  avgt   20   27823,839 ±  1022,714  us/op
MyBenchmark.testFourBlocks                10  avgt   20       0,328 ±     0,010  us/op
MyBenchmark.testFourBlocks               100  avgt   20       3,784 ±     0,135  us/op
MyBenchmark.testFourBlocks              1000  avgt   20      74,276 ±     2,289  us/op
MyBenchmark.testFourBlocks             10000  avgt   20    7047,825 ±   208,759  us/op
MyBenchmark.testFourBlocks             50000  avgt   20  182640,939 ±  9012,697  us/op
MyBenchmark.testNaive                     10  avgt   20       0,263 ±     0,005  us/op
MyBenchmark.testNaive                    100  avgt   20       4,045 ±     0,141  us/op
MyBenchmark.testNaive                   1000  avgt   20     184,440 ±     9,611  us/op
MyBenchmark.testNaive                  10000  avgt   20   20956,157 ±   822,248  us/op
MyBenchmark.testNaive                  50000  avgt   20  594264,702 ± 20885,791  us/op
MyBenchmark.testStreamed                  10  avgt   20       0,277 ±     0,009  us/op
MyBenchmark.testStreamed                 100  avgt   20       4,094 ±     0,185  us/op
MyBenchmark.testStreamed                1000  avgt   20     160,802 ±     5,950  us/op
MyBenchmark.testStreamed               10000  avgt   20   20089,014 ±   700,531  us/op
MyBenchmark.testStreamed               50000  avgt   20  566642,732 ± 15943,290  us/op
MyBenchmark.testStreamedParallel          10  avgt   20      11,551 ±     0,375  us/op
MyBenchmark.testStreamedParallel         100  avgt   20      20,562 ±     0,231  us/op
MyBenchmark.testStreamedParallel        1000  avgt   20      42,384 ±     1,478  us/op
MyBenchmark.testStreamedParallel       10000  avgt   20    1373,647 ±    20,357  us/op
MyBenchmark.testStreamedParallel       50000  avgt   20   22250,542 ±   343,414  us/op
MyBenchmark.testStreamedParallelShift     10  avgt   20      11,434 ±     0,165  us/op
MyBenchmark.testStreamedParallelShift    100  avgt   20      21,052 ±     0,270  us/op
MyBenchmark.testStreamedParallelShift   1000  avgt   20      39,929 ±     0,502  us/op
MyBenchmark.testStreamedParallelShift  10000  avgt   20    1243,644 ±    21,475  us/op
MyBenchmark.testStreamedParallelShift  50000  avgt   20   20986,001 ±   420,476  us/op
MyBenchmark.testStreamedShift             10  avgt   20       0,307 ±     0,007  us/op
MyBenchmark.testStreamedShift            100  avgt   20       3,969 ±     0,112  us/op
MyBenchmark.testStreamedShift           1000  avgt   20     143,929 ±     5,329  us/op
MyBenchmark.testStreamedShift          10000  avgt   20   18287,292 ±   528,179  us/op
MyBenchmark.testStreamedShift          50000  avgt   20  528949,557 ± 14937,280  us/op
MyBenchmark.testFactShiftTreeForkJoinMinSize     10  avgt   20     12,881 ?  0,679  us/op
MyBenchmark.testFactShiftTreeForkJoinMinSize    100  avgt   20     30,291 ?  0,081  us/op
MyBenchmark.testFactShiftTreeForkJoinMinSize   1000  avgt   20     60,077 ?  0,253  us/op
MyBenchmark.testFactShiftTreeForkJoinMinSize  10000  avgt   20   1130,127 ?  5,061  us/op
MyBenchmark.testFactShiftTreeForkJoinMinSize  50000  avgt   20  13951,768 ? 70,605  us/op

factorial-benchmarks's People

Contributors

nechkin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.