@@ -22,9 +22,10 @@ public class DefaultStatisticsCalculator implements StatisticsCalculator {
22
22
23
23
//region private fields
24
24
/**
25
- * 统计方式
25
+ * 耗时统计方式
26
+ * @since 1.0.0
26
27
*/
27
- private final DescriptiveStatistics statistics ;
28
+ private final DescriptiveStatistics latencyStatistics ;
28
29
29
30
/**
30
31
* 执行评价计数
@@ -35,22 +36,38 @@ public class DefaultStatisticsCalculator implements StatisticsCalculator {
35
36
* 错误计数
36
37
*/
37
38
private final AtomicLong errorCount = new AtomicLong ();
39
+
40
+ /**
41
+ * 内存消耗
42
+ * @since 2.0.5
43
+ */
44
+ private volatile long memoryKb ;
45
+
38
46
//endregion
39
47
40
48
//region constructor
49
+ /**
50
+ * 默认构造器
51
+ * @since 2.0.5
52
+ */
41
53
public DefaultStatisticsCalculator () {
42
54
this (new SynchronizedDescriptiveStatistics ());
43
55
}
44
56
45
- public DefaultStatisticsCalculator (DescriptiveStatistics statistics ) {
46
- this .statistics = statistics ;
57
+ /**
58
+ * 私有构造器
59
+ * @param latencyStatistics 延迟统计
60
+ * @since 1.0.0
61
+ */
62
+ private DefaultStatisticsCalculator (final DescriptiveStatistics latencyStatistics ) {
63
+ this .latencyStatistics = latencyStatistics ;
47
64
}
48
65
//endregion
49
66
50
67
//region methods
51
68
@ Override
52
69
public void addLatencyMeasurement (long executionTimeNs ) {
53
- statistics .addValue (executionTimeNs );
70
+ latencyStatistics .addValue (executionTimeNs );
54
71
}
55
72
56
73
@ Override
@@ -80,22 +97,32 @@ public long getEvaluationCount() {
80
97
81
98
@ Override
82
99
public float getLatencyPercentile (int percentile , TimeUnit unit ) {
83
- return (float )statistics .getPercentile ((double )(percentile )) / unit .toNanos (1 );
100
+ return (float ) latencyStatistics .getPercentile ((double )(percentile )) / unit .toNanos (1 );
84
101
}
85
102
86
103
@ Override
87
104
public float getMaxLatency (TimeUnit unit ) {
88
- return (float )statistics .getMax () / unit .toNanos (1 );
105
+ return (float ) latencyStatistics .getMax () / unit .toNanos (1 );
89
106
}
90
107
91
108
@ Override
92
109
public float getMinLatency (TimeUnit unit ) {
93
- return (float )statistics .getMin () / unit .toNanos (1 );
110
+ return (float ) latencyStatistics .getMin () / unit .toNanos (1 );
94
111
}
95
112
96
113
@ Override
97
114
public float getMeanLatency (TimeUnit unit ) {
98
- return (float )statistics .getMean () / unit .toNanos (1 );
115
+ return (float ) latencyStatistics .getMean () / unit .toNanos (1 );
116
+ }
117
+
118
+ @ Override
119
+ public void setMemory (long memoryKb ) {
120
+ this .memoryKb = memoryKb ;
121
+ }
122
+
123
+ @ Override
124
+ public long getMemory () {
125
+ return this .memoryKb ;
99
126
}
100
127
//endregion
101
128
0 commit comments