Uploaded image for project: 'Commons RNG'
  1. Commons RNG
  2. RNG-88

Update the GenerationPerformance benchmark

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Implemented
    • 1.3
    • 1.3
    • examples
    • None

    Description

      The current GenerationPerformance benchmark runs all the generators to collect timing data. However the act of running the test within JMH takes some time (test overhead). This overhead should be measured and subtracted from the timing data to create a time attributed only to the method exercised in the RNG.

      This can be done by creating a dummy RNG that returns a fixed value. The implementation must be done in a manner where the JIT compiler is not able to remove the dummy method from the execution path. This is achieved by returning state variables from the dummy RNG (not final variables).

      Testing can be done using a variable number of iterations and the run-times assessed for linearity. If the run time scale with the number of iterations then the JIT compiler has not removed it from execution. The dummy RNG then serves as a baseline for comparison of true implementations.

      This idea with examples is shown in RNG-87 which tested a variant of the MWC_256 algorithm.

      Attachments

        1. next.png
          98 kB
          Alex Herbert
        2. baseline.jpg
          26 kB
          Alex Herbert

        Issue Links

          Activity

            People

              aherbert Alex Herbert
              aherbert Alex Herbert
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h