https://issues.apache.org/bugzilla/show_bug.cgi?id=47223
Summary: Slow Aggregate Report Performance /
org.apache.jorphan.math.StatCalculator
Product: JMeter
Version: 2.3.2
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Main
AssignedTo: [email protected]
ReportedBy: [email protected]
Created an attachment (id=23695)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=23695)
Use LinkedList instead of ArrayList in org.apache.jorphan.math.StatCalculator
JMeter slows to a crawl and eventually becomes completely unresponsive as it
accumulates samples using the Aggregate Report.
The issue appears to be that the StatCalculator uses an ArrayList to store the
samples and inserts them within the list to keep the list sorted. ArrayList
has O(n) performance for insertions at arbitary locations in the array (n is
the current size of the list). This means that over the entire JMeter run
performance of JMeter with an AggregateReport is at least O(n-squared).
Changing the ArrayList to a LinkedList significantly improves the performance.
Although a LinkedList is still O(n) for sorted insertions (and for operations
such as reading the median and 90% values), the constants for these operations
are significantly lower than that of inserting into an ArrayList (probably
because the LinkedList never needs to copy the whole array in order to insert
an item).
After this change JMeter becomes usable for collecting tens of thousands of
samples, whereas before it would bring my system to a complete halt.
I've attached a small patch to the bug that changes the ArrayList into a
LinkedList in StatCalculator.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]