@@ -58,14 +58,18 @@ public SensorMetadata metadata() {
58
58
59
59
public void recordMeasure (double [] components ) {
60
60
samples ++;
61
+ ensureArraysSize ();
62
+
61
63
final var timestamp = System .currentTimeMillis ();
64
+ timestamps [samples - 1 ] = timestamp ;
65
+
62
66
for (int component = 0 ; component < components .length ; component ++) {
63
67
final var componentValue = components [component ];
64
68
// record that the value is not zero
65
69
if (componentValue != 0 ) {
66
70
nonZeroComponents .set (component );
67
71
}
68
- recordComponentValue ( component , componentValue , timestamp ) ;
72
+ measures [ component ][ samples - 1 ] = componentValue ;
69
73
}
70
74
71
75
final var processors = processors ();
@@ -78,8 +82,8 @@ public void recordMeasure(double[] components) {
78
82
}
79
83
}
80
84
81
- private void recordComponentValue ( int component , double value , long timestamp ) {
82
- final var currentSize = measures [ component ] .length ;
85
+ private void ensureArraysSize ( ) {
86
+ final int currentSize = timestamps .length ;
83
87
if (currentSize <= samples ) {
84
88
final var newSize = currentSize * 2 ;
85
89
for (int index = 0 ; index < measures .length ; index ++) {
@@ -91,8 +95,6 @@ private void recordComponentValue(int component, double value, long timestamp) {
91
95
System .arraycopy (timestamps , 0 , newTimestamps , 0 , currentSize );
92
96
timestamps = newTimestamps ;
93
97
}
94
- timestamps [samples - 1 ] = timestamp ;
95
- measures [component ][samples - 1 ] = value ;
96
98
}
97
99
98
100
public Duration duration () {
0 commit comments