You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by FSchumacher <gi...@git.apache.org> on 2018/03/31 15:16:36 UTC

[GitHub] jmeter pull request #380: Hdrhistogram

GitHub user FSchumacher opened a pull request:

    https://github.com/apache/jmeter/pull/380

    Hdrhistogram

    ## Description
    <!--- Provide a general summary of your changes in the Title above -->
    <!--- Describe your changes in detail here -->
    First try to replace percentile calculations with HdrHistogram.
    This is just to get an impression, what we can gain by using another implementation and should not  be incorporated yet.
    
    ## Motivation and Context
    <!--- Why is this change required? What problem does it solve? -->
    <!--- If it fixes an open issue, please link to the issue here. -->
    Currently we have two different algorithms for calculating percentiles. The results differ and the algorithm is not documented. This should be changed (although it is not addressed yet by this pr).
    
    Another point is the efficiency of the used algorithms. As the swing gui will be refreshed every 300 ms (or so), when data arrives and the mean, average and other percentiles are re-caculated on every refresh, the used algorithm should be very efficient. The currently used one is iterating over every bucket to calculate the mean (and std deviation).
    
    The proposed implementation uses a different approach and doesn't need to iterate to calculate the mean, etc. The percentiles are calculated by HdrHistogram and the locking has been simplified by transferring all logic that modifies the data into the awt thread.
    
    In my tests the samples per second went up from 200 per second over 1.400 per second.
    
    ## How Has This Been Tested?
    <!--- Please describe in detail how you tested your changes. -->
    <!--- Include details of your testing environment, tests ran to see how -->
    <!--- your change affects other areas of the code, etc. -->
    
    Tested by using a simple JSR223 Sampler that slept a bit (and by a JSR223 Sampler, that pretended to sleep a bit)
    
    ## Screenshots (if appropriate):
    
    ## Types of changes
    <!--- What types of changes does your code introduce? Delete as appropriate -->
    - Bug fix (non-breaking change which fixes an issue)
    - New feature (non-breaking change which adds functionality)
    - Breaking change (fix or feature that would cause existing functionality to not work as expected)
    
    A bit of everything
    
    ## Checklist:
    <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
    <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
    - [ ] My code follows the [code style][style-guide] of this project.
    - [ ] I have updated the documentation accordingly.
    
    [style-guide]: https://wiki.apache.org/jmeter/CodeStyleGuidelines


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/FSchumacher/jmeter hdrhistogram

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/jmeter/pull/380.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #380
    
----
commit 4280996464a4adbed427672f7c6f0eda82c020e1
Author: fschumacher <fe...@...>
Date:   2018-03-30T17:17:19Z

    HdrHistogram, first try

commit 492a869b705d36d6421d42899fdc73a2d052b88c
Author: fschumacher <fe...@...>
Date:   2018-03-31T07:05:19Z

    Use more efficient algorithm to calculate mean and stddev

----


---

[GitHub] jmeter issue #380: Hdrhistogram

Posted by vlsi <gi...@git.apache.org>.
Github user vlsi commented on the issue:

    https://github.com/apache/jmeter/pull/380
  
    @FSchumacher , what do you think of https://github.com/LatencyUtils/LatencyUtils/ ?


---

[GitHub] jmeter issue #380: Hdrhistogram

Posted by pmouawad <gi...@git.apache.org>.
Github user pmouawad commented on the issue:

    https://github.com/apache/jmeter/pull/380
  
    Hello,
    Thanks @FSchumacher , looks like a good start.
    @vlsi , looks interesting .
    Can you help on integrating it ?
    
    Thanks


---